![](/img/trans.png)
[英]Replace NA values in a data frame column with values with elements from a vector
[英]How to replace NA values in one column of a data frame, with values from a column in a different data frame?
如何将 'example' 中的 NA 值替换为 'example 2' 中的相应值? 所以 7 将代替第一个 NA,8 将代替第二个 NA 等等。我的数据要大得多,所以我无法为多个 NA 单独重命名值。 谢谢
example <- data.frame('count' = c(1,3,4,NA,8,NA,9,0,NA,NA,7,5,8,NA))
example2 <- data.frame('count' = c(7,8,4,6,7))
另一种可能的解决方案,基于replace
:
example$count <- replace(example$count, is.na(example$count), example2$count)
example
#> count
#> 1 1
#> 2 3
#> 3 4
#> 4 7
#> 5 8
#> 6 8
#> 7 9
#> 8 0
#> 9 4
#> 10 6
#> 11 7
#> 12 5
#> 13 8
#> 14 7
您可以尝试:
example[is.na(example),] <- example2
这会给你:
count
1 1
2 3
3 4
4 7
5 8
6 8
7 9
8 0
9 4
10 6
11 7
12 5
13 8
14 7
编辑:由于您的数据框中可能不止一列,因此您应该使用:
example$count[is.na(example$count)] <- example2$count
另一个which
检查 NA 值索引的选项:
ind <- which(is.na(example$count))
example[ind, "count"] <- example2$count
输出:
count
1 1
2 3
3 4
4 7
5 8
6 8
7 9
8 0
9 4
10 6
11 7
12 5
13 8
14 7
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.