用相同变量的另一个单元格填充具有<NA>的列

时间:2019-10-02 13:45:56

标签: r dataframe

我下面的dataframe的ID列中包含NA,我想用每个组的第一个因子替换它。

数据框

structure(list(ID = structure(c(1L, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, 3L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, 2L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), .Label = c("A", 
"AA", "B"), class = "factor"), rand = c(3.31857306034336, 4.30946753155016, 
9.67612494244737, 5.21152517427373, 5.38786320548284, 10.1451949606498, 
6.38274861796761, 1.2048162961804, 2.93944144431942, 3.66301408970013, 
8.67224539231838, 6.07944148117209, 6.20231435178216, 5.33204814783536, 
3.33247659573778, 10.3607394104092, 6.49355143468772, -0.899851469888914, 
7.10406770469106, 3.5816257768162, 1.79652888203946, 4.34607525602511, 
1.92198665507828, 2.81332631212658, 3.12488219645223, -0.0600799322272403, 
7.51336113348357, 5.46011935350955, 1.58558918896416, 8.76144476320978, 
6.27939266443044, 4.11478555102319, 7.68537698313507, 7.63440046259913, 
7.46474324491246, 7.06592076230027, 6.66175296061277, 4.81426486826984
)), row.names = c(NA, -38L), class = "data.frame")

预期输出:

structure(list(ID = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("A", 
"AA", "B"), class = "factor"), rand = c(3.31857306034336, 4.30946753155016, 
9.67612494244737, 5.21152517427373, 5.38786320548284, 10.1451949606498, 
6.38274861796761, 1.2048162961804, 2.93944144431942, 3.66301408970013, 
8.67224539231838, 6.07944148117209, 6.20231435178216, 5.33204814783536, 
3.33247659573778, 10.3607394104092, 6.49355143468772, -0.899851469888914, 
7.10406770469106, 3.5816257768162, 1.79652888203946, 4.34607525602511, 
1.92198665507828, 2.81332631212658, 3.12488219645223, -0.0600799322272403, 
7.51336113348357, 5.46011935350955, 1.58558918896416, 8.76144476320978, 
6.27939266443044, 4.11478555102319, 7.68537698313507, 7.63440046259913, 
7.46474324491246, 7.06592076230027, 6.66175296061277, 4.81426486826984
)), class = "data.frame", row.names = c(NA, -38L))

r中是否有任何可以自动执行此功能的功能?

谢谢!

0 个答案:

没有答案
相关问题