Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 将矩阵转换为列表_List_R_Matrix - Fatal编程技术网

List 将矩阵转换为列表

List 将矩阵转换为列表,list,r,matrix,List,R,Matrix,假设我有一个矩阵foo,如下所示: foo <- cbind(c(1,2,3), c(15,16,17)) > foo [,1] [,2] [1,] 1 15 [2,] 2 16 [3,] 3 17 您可以按如下方式进行操作: foo <- cbind(c(1,2,3), c(15,16,17)) > foo [,1] [,2] [1,] 1 15 [2,] 2 16 [3,] 3 17

假设我有一个矩阵
foo
,如下所示:

foo <- cbind(c(1,2,3), c(15,16,17))

> foo
     [,1] [,2]
[1,]    1   15
[2,]    2   16
[3,]    3   17
您可以按如下方式进行操作:

foo <- cbind(c(1,2,3), c(15,16,17))

> foo
     [,1] [,2]
[1,]    1   15
[2,]    2   16
[3,]    3   17
lapply(应用(foo,1,函数(x)列表(c(x[1],x[2])),函数(y)未列表(y))


我对另一种不那么复杂的方法感兴趣。注意,如果您只执行
apply(foo,1,函数(x)list(c(x[1],x[2]))
,它会在列表中返回一个列表,这是我希望避免的。

这里有一个更干净的解决方案:

as.list(data.frame(t(foo)))
这充分利用了一个事实,即数据帧实际上只是一个等长向量的列表(而矩阵实际上是一个以列和行显示的向量……例如,您可以通过调用foo[5]看到这一点)

您也可以这样做,尽管这并不是一个很大的改进:

lapply(1:nrow(foo), function(i) foo[i,])
您的
as.list()
方法非常完美。而且比我的方法(0.847秒对2.45秒)快得多。
library(plyr)
alply(foo, 1)