如何将 lapply 的输出保存(分配)到 R 中的各个变量中?
How to save(assign) the output from lapply into individual variables in R?
我有一个非常简单的问题,但我已经解决了!
我有一个列表作为输出:
举个例子:
lapply(1:40, function(x){ (1+x)})
输出:
[[1]]
[1] 2
[[2]]
[1] 3
[[3]]
[1] 4
直到
[[40]]
[1] 41
我想知道如何使用循环将此列表的每个输出分配给一个新变量?
像这样
a<- [[2]]; b <- [[3]]; ... az <- [[40]]
等等。
提前致谢,
我为名称创建了一个向量并使用了一个短循环。也许有人可以将其矢量化。
var_names <- c(letters, paste0(letters[1],letters[1:13]))
for(i in seq_along(var_names)) {
assign(var_names[i], lapply(1:40, function(x){ (1+x)})[[i+1]])}
a
[1] 3
b
[1] 4
am
[1] 41
这是我的解决方案,它要求 lapply
的输出以名称 ll
存储,但我认为它可以很容易地修改。
ll <- lapply(1:40, function(x){ (1+x)})
nam <- "list_output_"
val <- c(1:length(ll))
for(i in 1:length(val)){
assign(
paste(nam, val, sep = "")[i], ll[[i]]
) }
输出将是list_output_1
等等。
我有一个非常简单的问题,但我已经解决了! 我有一个列表作为输出:
举个例子:
lapply(1:40, function(x){ (1+x)})
输出:
[[1]]
[1] 2
[[2]]
[1] 3
[[3]]
[1] 4
直到
[[40]]
[1] 41
我想知道如何使用循环将此列表的每个输出分配给一个新变量? 像这样
a<- [[2]]; b <- [[3]]; ... az <- [[40]]
等等。
提前致谢,
我为名称创建了一个向量并使用了一个短循环。也许有人可以将其矢量化。
var_names <- c(letters, paste0(letters[1],letters[1:13]))
for(i in seq_along(var_names)) {
assign(var_names[i], lapply(1:40, function(x){ (1+x)})[[i+1]])}
a
[1] 3
b
[1] 4
am
[1] 41
这是我的解决方案,它要求 lapply
的输出以名称 ll
存储,但我认为它可以很容易地修改。
ll <- lapply(1:40, function(x){ (1+x)})
nam <- "list_output_"
val <- c(1:length(ll))
for(i in 1:length(val)){
assign(
paste(nam, val, sep = "")[i], ll[[i]]
) }
输出将是list_output_1
等等。