簡體   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