我有一个大数据框,部分内容如下:
id carbon nitrogen sulfer
1 1 NA NA NA
2 1 NA NA NA
3 1 5 6 78
4 2 NA NA NA
5 2 NA NA NA
6 2 8 8 67
7 3 NA NA NA
8 3 NA NA NA
9 3 NA NA NA
10 3 7 9 55
我是否有办法填充列中的NA
值(示例碳),其中一个值与id相同。例如,如果我们采用id == 1
,则列碳的值为5,需要将NA
替换为5。
我有近200列填充像这样。
非常感谢任何有关自动化的帮助。
答案 0 :(得分:1)
你没有真正澄清@flodel在评论中指出的问题。无论如何,给出示例数据中的模式,即除了最后一个id 中的之外,所有碳氮硫的值都丢失了,那么你可以试试这个:
library(zoo)
na.locf(df, na.rm = FALSE, fromLast = TRUE)
# id carbon nitrogen sulfer
# 1 1 5 6 78
# 2 1 5 6 78
# 3 1 5 6 78
# 4 2 8 8 67
# 5 2 8 8 67
# 6 2 8 8 67
# 7 3 7 9 55
# 8 3 7 9 55
# 9 3 7 9 55
# 10 3 7 9 55
答案 1 :(得分:0)
试试这个,我希望你需要它。如果没有更新,我更新结果。顺便说一下,这已被问过几次了。
myFunc <- function(value) {
if (value[1] == 1) {
value[2] = 5;
value[3] = 5;
value[4] = 5
}
# here you put you're if's
}
apply(data, 1, myFunc)