在我看来,这应该是很简单的,但....我想从一个数据帧创建一组数据帧的
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'
我想打破数据帧到其列,并有一组的新数据较小的框架,每列一个
我无法弄清楚我要去哪里错了。总是非常感谢帮助。
也许这样的事情?我想,你只需要在您的通话lappy上定义一个匿名函数
a <- 5
b <- 1:a
c <- as.data.frame(matrix(rnorm(30, 1), ncol = 5))
out <- lapply(c, function(i) data.frame(i))
因此,您希望将数据帧分成多个数据帧,每个数据帧一个。你确定你要这么做吗?当人们想要知道如何遍历一堆对象时,有很多问题,当他们更好地将所有这些对象包装到列表或类似的数据结构中时。请注意,数据框基本上只是一列列。
有了这样的方式....
d <- as.data.frame(matrix(rnorm(30), ncol=5))
for(i in seq_len(ncol(d))) {
name <- names(d)[i]
assign(name, d[[i]])
}
好的谢谢你的评论,我会认为,仔细地,因为我认为你是对的。代码的作品,但我仍然最终有一个矩阵,有五列。我没有解释我需要什么,我猜。 –
修复了一些故障。此外,这实际上将列保存为向量,而不是像这样的数据帧。 –
完美!谢谢你,诺亚。 –
lapply(c,data.frame) – user20650