在我看来,这应该很简单,但是......
a <- 5
b <- 1:a
c <- matrix(rnorm(30, 1), ncol = 5)
out <- lapply(c,c[,i])
Error in c[, i] : invalid subscript type 'list'
我想将数据框分成其列,并有一组新的数据较小的帧,每列一个
我不知道我哪里出错了。帮助总是非常感谢。
在我看来,这应该很简单,但是......
a <- 5
b <- 1:a
c <- matrix(rnorm(30, 1), ncol = 5)
out <- lapply(c,c[,i])
Error in c[, i] : invalid subscript type 'list'
我想将数据框分成其列,并有一组新的数据较小的帧,每列一个
我不知道我哪里出错了。帮助总是非常感谢。
因此,您希望将一个数据框分解为多个数据框,每列一个。你确定要这么做吗?有很多问题是人们想知道如何循环一堆对象,什么时候最好将所有这些对象包装到一个列表或类似的数据结构中。请注意,数据框基本上只是一个列列表。
有了它的方式......
d <- as.data.frame(matrix(rnorm(30), ncol=5))
for(i in seq_len(ncol(d))) {
name <- names(d)[i]
assign(name, d[[i]])
}
也许是这样的?我认为您只需要在 lappy 调用中定义一个匿名函数
a <- 5
b <- 1:a
c <- as.data.frame(matrix(rnorm(30, 1), ncol = 5))
out <- lapply(c, function(i) data.frame(i))