如何在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]]))