R 为什么我的清单不起作用
我有一个函数,可以检查我的列表。我有一个有两个向量的列表。我没有重复我的代码,而是尝试使用R 为什么我的清单不起作用,r,R,我有一个函数,可以检查我的列表。我有一个有两个向量的列表。我没有重复我的代码,而是尝试使用for循环。但是,for循环没有按预期工作 这是我的密码: x <- c(2,3,4,5) y <- c(2,4,6,7) z <- list(x,y) pscale <- numeric() pscale <- list() for(i in 1:4){#length of my vector for(j in 1:2){#length of z pscale
for
循环。但是,for循环没有按预期工作
这是我的密码:
x <- c(2,3,4,5)
y <- c(2,4,6,7)
z <- list(x,y)
pscale <- numeric()
pscale <- list()
for(i in 1:4){#length of my vector
for(j in 1:2){#length of z
pscale[[j]][[i]] <- ifelse(z[[j]][[i]] %in% c(2,9,10),0.01,1)
}
}
Error in `*tmp*`[[j]] : subscript out of bounds
x我建议将pscale
声明为矩阵:
x <- c(2,3,4,5)
y <- c(2,4,6,7)
z <- list(x,y)
pscale <- matrix(rep(NA,length(x)*length(z)), length(z), length(x))
for(i in 1:4) {
for(j in 1:2) {
pscale[j,i] <- ifelse(z[[j]][[i]] %in% c(2,9,10), 0.01, 1)
}
}
pscale
# [,1] [,2] [,3] [,4]
# [1,] 0.01 1 1 1
# [2,] 0.01 1 1 1
我建议将pscale
声明为矩阵:
x <- c(2,3,4,5)
y <- c(2,4,6,7)
z <- list(x,y)
pscale <- matrix(rep(NA,length(x)*length(z)), length(z), length(x))
for(i in 1:4) {
for(j in 1:2) {
pscale[j,i] <- ifelse(z[[j]][[i]] %in% c(2,9,10), 0.01, 1)
}
}
pscale
# [,1] [,2] [,3] [,4]
# [1,] 0.01 1 1 1
# [2,] 0.01 1 1 1
这应该行得通
x <- c(2,3,4,5)
y <- c(2,4,6,7)
z <- list(x,y)
pscale <- list()
length(pscale) <- 2 # set length to the number of vectors
for(i in 1:4){#length of my vector
for(j in 1:2){#length of z
pscale[[j]][i] <- ifelse(z[[j]][i] %in% c(2,9,10),0.01,1)
}
}
x这应该行得通
x <- c(2,3,4,5)
y <- c(2,4,6,7)
z <- list(x,y)
pscale <- list()
length(pscale) <- 2 # set length to the number of vectors
for(i in 1:4){#length of my vector
for(j in 1:2){#length of z
pscale[[j]][i] <- ifelse(z[[j]][i] %in% c(2,9,10),0.01,1)
}
}
x我有很多向量,需要函数自动工作。我编辑了我的答案。若你们知道你们的向量数,那个么设置列表的长度。我有很多向量,需要这个函数自动工作。我编辑了我的答案。如果您知道向量的数量,那么请设置列表的长度。请您解释一下2
在vector(2,…)
中的含义。是我的向量数吗?@Alice是的,2
是向量数:x
和y
。你可以使用vector(length(z),mode=“list”)
。你能解释一下vector(2,…)中2
的意思吗。是我的向量数吗?@Alice是的,2
是向量数:x
和y
。您可以使用向量(长度(z),mode=“list”)
。