如何在R中创建向量的向量

如何在R中创建向量的向量,r,R,我的输入数据包含如下行: -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.69

我的输入数据包含如下行:

-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
>x x[[1]]x[[2]]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
>sx
[[1]]
[1] -0.438185 -0.766791 0.695282
[[2]]
[1] 0.759100 0.034400 0.524807

我使用strsplit按换行符拆分,然后将strsplit再次应用于每一行。as.numeric用于从字符串转换为数字,[[1]]的存在是因为strsplit输出一个列表,而我们并不真正需要它。

StompChicken是正确的,只需使用一个列表即可。虽然我想添加一个小技巧,可以帮助您从现有结构中学习:

 dput(dframe) 
输出一些代码以创建相应的data.frame或vector。尝试使用任何向量、帧或列表,您就会看到它是如何创建的,例如:

x= c(1,2,3,4)
dput(x)

echos c(1,2,3,4)

假设您的数据是以数据帧的形式命名的,比如说,
df

library(plyr)
alply(as.matrix(df),1,"[")
给予


如果是从文件中读取的,比如说
data.txt
,可以通过以下方式完成:

lapply(readLines('data.txt'),function(x) as.numeric(strsplit(x,' +')[[1]]))

尤其是当每行的元素数不同时。
lapply(readLines('data.txt'),function(x) as.numeric(strsplit(x,' +')[[1]]))