我下面的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
中是否有任何可以自动执行此功能的功能?
谢谢!