数据集是:
material ID1 ID2
1 steel 0085 0081
2 plastics 0082 0087
3 NA 0087 0088
由于第三次观察的ID1与第二次视力的ID2相同。我可以将第三种材料的材料归为“塑料”。我有成千上万的障碍物,并且有很多物质缺失。如何通过r中的方法用材料来填充缺失的数据?非常感谢你。
答案 0 :(得分:0)
可能有帮助:
indx <- is.na(dat1$material)
indx2 <- c(FALSE,dat1$ID1[-1]==dat1$ID2[-nrow(dat1)])
dat1$material[indx2 & indx] <- dat1$material[which(indx2 & indx)-1]
dat1
# material ID1 ID2
#1 steel 0085 0081
#2 plastics 0082 0087
#3 plastics 0087 0088
dat1 <- structure(list(material = c("steel", "plastics", NA), ID1 = c("0085",
"0082", "0087"), ID2 = c("0081", "0087", "0088")), .Names = c("material",
"ID1", "ID2"), class = "data.frame", row.names = c("1", "2",
"3"))
答案 1 :(得分:0)
试试这个:
for (i in 1:nrow(dataset)) {
a <- dataset[i,]
if (is.na(a$material)) {
dataset[i,1] <- dataset$material[grep(a$ID1, dataset$ID2)[1]]
}
}