gpt4 book ai didi

R:用最后一个非空单元格的值填充空单元格

转载 作者:行者123 更新时间:2023-12-04 06:16:18 26 4
gpt4 key购买 nike

在Excel中,很容易捕获一列中的一个单元格,然后向下拖动光标以替换下面的许多单元格,以便每个单元格都变为与原始单元格相同的值。

可以使用for循环在R中执行此功能。我今天花了一些时间试图解决这个问题,并认为我会为下一个穿鞋的人的利益而分享:

for (row in 2:length(data$column)){ # 2 so you don't affect column names
if(data$column[row] == "") { # if its empty...
data$column[row] = data$column[row-1] # ...replace with previous row's value
}
}

尽管对大型数据文件运行需要花费很长时间(5-10分钟),但对我来说却很有效。也许有一种更有效的方法来实现此功能,我鼓励任何人说如何做到这一点。

谢谢,祝你好运。

最佳答案

df <- data.frame(a = c(1:5, "", 3, "", "", "", 4), stringsAsFactors = FALSE)

> df
a
1 1
2 2
3 3
4 4
5 5
6
7 3
8
9
10
11 4

while(length(ind <- which(df$a == "")) > 0){
df$a[ind] <- df$a[ind -1]
}

> df
a
1 1
2 2
3 3
4 4
5 5
6 5
7 3
8 3
9 3
10 3
11 4

编辑:添加了时间配置文件
set.seed(1)
N = 1e6
df <- data.frame(a = sample(c("",1,2),size=N,replace=TRUE),
stringsAsFactors = FALSE)

if(df$a[1] == "") {df$a[1] <- NA}

system.time(
while(length(ind <- which(df$a == "")) > 0){
df$a[ind] <- df$a[ind - 1]
}, gcFirst = TRUE)

user system elapsed
0.89 0.00 0.88

关于R:用最后一个非空单元格的值填充空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38470355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com