我创建了一个小的示例数据集,希望创建另外两列 (第108列和第109列)通过根据每个观察值的样本大小以及QL和QU值在表B5中查找它们的值来实现。
例如,如果样本数据中的“样本大小”为3,则转到表B5并位于第1列,即n = 3,然后使用值QL和QU查找第一列“样本大小” = 3的样本数据中的观察值。
我还添加了一个条件,如果QL或QU大于3.9, 那么列108或列109将设置为0。
我的代码如下,但是没有成功,没有任何错误。 表B5和样本数据已上传到以下链接: 任何帮助将不胜感激。 谢谢!
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
}
}
}
}