HNS*_*SKD 5 r data-manipulation dplyr
我想为给定现有值的变量估算缺失值。在 中var2,我们注意到有很多NAs。
var2相同。var2,就像 id==2 的情况一样,那么我们只输出为NA。它应该从df_old到df_new.
df_old<- read.table(header = TRUE, text = "
id var1 var2
1 A 12
1 B NA
1 E NA
2 G NA
2 J NA
")
df_new<- read.table(header = TRUE, text = "
id var1 var2
1 A 12
1 B 12
1 E 12
2 G NA
2 J NA
")
Run Code Online (Sandbox Code Playgroud)
我试过:
df_new<-df_old %>%
group_by(id) %>%
mutate(var2=na.omit(var2))
Run Code Online (Sandbox Code Playgroud)
我相信它不起作用,因为第二种情况。我还想知道使用 ifelse 是否可以。需要帮助谢谢!
var2如果每个可用值只有一个,id您可以简单地执行以下操作:
df_old %>%
group_by(id) %>%
mutate(var2 = min(var2, na.rm = TRUE))
Source: local data frame [5 x 3]
Groups: id [2]
id var1 var2
<int> <fctr> <int>
1 1 A 12
2 1 B 12
3 1 E 12
4 2 G NA
5 2 J NA
Run Code Online (Sandbox Code Playgroud)
另一种选择是:
mutate(var2 = var2[1])
Run Code Online (Sandbox Code Playgroud)