繁体   English   中英

如何将数据框中的一列中的 NA 值替换为不同数据框中的列中的值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM