【问题标题】:Impute missing data by match IDs按匹配 ID 估算缺失数据
【发布时间】:2014-09-20 13:43:22
【问题描述】:

数据集是:

   material      ID1         ID2

1   steel       0085        0081

2   plastics    0082        0087

3   NA          0087        0088

由于第三个观察的 ID1 与第二个观察的 ID2 相同。我可以将第三个 obs 的材料归为“塑料”。我有数千个 obs,并且缺少很多材料。如何通过 r 中的方法用材料估算缺失的数据?非常感谢。

【问题讨论】:

  • 不太清楚你在问什么。数据库?请编辑您的问题并提供更多详细信息

标签: r


【解决方案1】:

这可能会有所帮助:

 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"))

【讨论】:

    【解决方案2】:

    试试这个:

    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]]
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-06-21
      • 2019-08-16
      • 2020-06-19
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      • 2019-12-28
      • 2021-09-14
      相关资源
      最近更新 更多