我试图使用“匹配”来查找值,但没有用

时间:2019-05-24 18:49:51

标签: r

我创建了一个小的示例数据集,希望创建另外两列 (第108列和第109列)通过根据每个观察值的样本大小以及QL和QU值在表B5中查找它们的值来实现。

例如,如果样本数据中的“样本大小”为3,则转到表B5并位于第1列,即n = 3,然后使用值QL和QU查找第一列“样本大小” = 3的样本数据中的观察值。

我还添加了一个条件,如果QL或QU大于3.9, 那么列108或列109将设置为0。

我的代码如下,但是没有成功,没有任何错误。 表B5和样本数据已上传到以下链接: 任何帮助将不胜感激。 谢谢!

https://rit0-my.sharepoint.com/:f:/g/personal/jc3992_ad_rit_edu/EgpGAQ9KekZAk96n8zO677cBDrVkjDpSKg5evBWV5SNjoA?e=Gl6pQk

  x <- c(1,4,7,11,14,17,20,23,26,29,31,34,37,40,43)
  x.list <- as.list(x)
  for (i in x.list) {
    for (j in 1:895) {
    if (as.vector(plyr2[j,107]) %in% as.vector(TableB5[1,i])){
      if (as.vector(plyr2$QL)[j] %in% as.vector(TableB5[,i] | as.vector(plyr2$QU)[j] %in% as.vector(TableB5[,i+1]))){ 
      as.data.frame(plyr2)[j,108] =as.data.frame(TableB5)[j,i]
      as.data.frame(plyr2)[j,109] =as.data.frame(TableB5)[j,i+1] 
      } else{
        as.data.frame(plyr2)[j,108]=0
        as.data.frame(plyr2)[j,109]=0 ##PU
      }
    }
    }
  }

0 个答案:

没有答案