【发布时间】:2015-07-07 18:44:09
【问题描述】:
我正在学习如何正确设置循环,但仍然在努力使用正确的索引和语法。 下面我有两个矩阵的列表,每个矩阵 2 列 x 3 行。 我想查看每个矩阵中的第二列,如果 x>0.50,则理想情况下创建一个值为 1 的新列,否则 = 0。两种方法都将非常感谢帮助,它应该可以帮助我学习。此外,如果您知道在高维列表中构造循环的任何良好参考,我们将不胜感激。非常感谢。
a <- c(0.1,0.2,0.3)
b <- c(0.8,0.2,0.5)
c <- c(0.4,0.9,1.0)
d <- c(0.7,0.9,0.2)
ab <- cbind(a,b)
cd <- cbind(c,d)
abcd <- list(ab,cd)
presabs <- vector("list",ncol(y))
# Trying lapply but indexing something wrong
res <- lapply(abcd, function(x) if (x[,2]>0.5) {1} else {0})
# Other method also not working:
for (i in 1:length(abcd))
for (j in 1:length(a)){
{
if(abc[[i]][j]>0.50){
presabs[j] <- 1
} else {
presabs[j] <- 0
}
}
}
【问题讨论】:
标签: r list if-statement