我正在尝试将一个向量列表(实质上是一个多维数组)转换为数据框,但每次尝试时都会得到意外的结果。
我的目标是实例化一个空列表,在循环中用包含该循环迭代信息的向量填充它,然后在完成后将其转换为数据框。
> vectorList <- list()
> for(i in 1:5){
+ vectorList[[i]] <- c("number" = i, "square root" = sqrt(i))
+ }
> vectorList
输出:
> [[1]]
> number square root
> 1 1
>
> [[2]]
> number square root
> 2.000000 1.414214
>
> [[3]]
> number square root
> 3.000000 1.732051
>
> [[4]]
> number square root
> 4 2
>
> [[5]]
> number square root
> 5.000000 2.236068
现在我希望将这个 'vectorList' 转化为一个包含 5 行 2 列的数据框。
numbers <- data.frame(vectorList)
导致了5个变量的2次观察结果。
奇怪的是,即使使用reshape2也无法强制转换(我知道这将是一个可怕的解决方法,但我尝试过了)。
有人有任何见解吗?
lapply
:vectorList <- lapply(1:5, function(x) c(x, sqrt(x)))
。 - lmo