我有包含这样的行的输入数据:

-0.438185 -0.766791  0.695282
0.759100  0.034400  0.524807


我如何在R中创建如下数据结构:

[[1]]
  [1] -0.438185 -0.766791  0.695282
[[2]]
  [1]  0.759100  0.034400  0.524807

最佳答案

使用清单:

> x <- list()
> x[[1]] <- c(-0.438185, -0.766791, 0.695282)
> x[[2]] <- c(-0.759100, 0.034400, 0.524807)

> x
[[1]]
[1] -0.438185 -0.766791  0.695282

[[2]]
[1] -0.759100  0.034400  0.524807


可以将其视为由整数索引的地图/字典/关联数组。

如果要采用上述字符串,然后将其变成向量列表:

> s <- "-0.438185 -0.766791  0.695282\n0.759100  0.034400  0.524807"
> x <- lapply(strsplit(s, "\n")[[1]], function(x) {as.numeric(strsplit(x, '\\s+')[[1]])})
> x
[[1]]
[1] -0.438185 -0.766791 0.695282

[[2]]
[1] 0.759100 0.034400 0.524807


我正在使用strsplit来按换行符分割,然后再次将strsplit应用于每行。 as.numeric可以将字符串转换为数字,而[[1]]可以转换为字符串,因为strsplit输出了一个列表,而这并不是我们真正想要的。

关于r - 如何在R中创建向量的向量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3179326/

10-10 18:01