r - 使用循环在 R 中创建一个大列表

标签 r loops matrix

我有一个问题:
我需要创建一个矩阵列表。这是一个数据框:

data=data.frame("Node"=c(1:5), posx=c(2,3,6,8,1), posy=c(1,1,4,7,8))
  Node posx posy
1    1    2    1
2    2    3    1
3    3    6    4
4    4    8    7
5    5    1    8

现在我想创建一个矩阵列表。与循环。我想创建这样的矩阵列表:

l=list(l1,l2,l3,l4,l5)

哪里:

l1=cbind(c(2),c(1))
l2=cbind(c(3),c(1))
l3=cbind(c(6),c(4))
l4=cbind(c(8),c(7))
l5=cbind(c(1),c(8))

这是我的尝试:

for (i in 1:(data$Node) ) {
  l=list(cbind(c(data$posx[i]), (data$posy[i])))
}

最佳答案

尝试

lapply(seq_len(nrow(data)), function(i) as.matrix(data[i,-1]))

或者

lapply(split(data[,-1],row(data)[,1]), as.matrix)

或者

lapply(split(as.matrix(data[,-1]),row(data)[,1]), matrix, ncol=2)

或者使用data.table

library(data.table)
setDT(data)[,list(list(as.matrix(.SD))) , by=Node]$V1

关于r - 使用循环在 R 中创建一个大列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27485322/

相关文章:

excel - 将每个单元格的名称设置为其内容/值

c++ - 浏览字符串矩阵并将其存储在 vector 的 vector 中

r - 在基于 R 的同一图上创建多个箱线图

r - R中括号(圆括号)的作用

loops - 如何遍历 Iris Go 框架中的一片结构?

r - 如何在 r 中组合两个数据框,以便生成的数据框有一个新列指示原始数据框?

python - 了解带条件的 While 循环

matlab - 如何按元素将矩阵的列除以向量的元素?

r - 更改 Shiny Action 按钮的形状

r - 使混合排序区分大小写? [r]