【发布时间】:2014-05-09 13:17:54
【问题描述】:
我有一个巨大的数据框,其中包含需要合并的两列。 On 可能想知道这是否不仅仅是这篇文章here 中提到的同一个问题,但我的数据框实际上不存在仅两列。还有更多(有很多 NA),我只想处理其中的两个,我猜这让它有点复杂。
这是其中的一部分:
col1 col2
15 NA 4
16 NA 5
17 NA 5
18 NA 5
19 NA 1
20 NA NA
21 NA NA
22 1 NA
23 5 NA
24 2 NA
25 4 NA
26 3 NA
27 NA 2
28 NA 4
29 NA 5
30 NA 3
我需要通过替换彼此的 NA 将这些列合并为一个。当两列都包含 NA 时,不会发生任何替换(但这很明显)。
结果应该是这样的:
col1
15 4
16 5
17 5
18 5
19 1
20 NA
21 NA
22 1
23 5
24 2
25 4
26 3
27 2
28 4
29 5
30 3
我尝试了一个丑陋的 for 循环:
for (i in 1:nrow(df)){
if (is.na(df[i,1])==TRUE){
df[i,1] <- df[i,2]
}
}
df <- df[,1]
但该代码似乎太慢了。有谁知道两个如何处理这个问题?
非常感谢!
【问题讨论】:
-
如果您要使用 sql 更新第 1 列,这可能很简单
标签: r