从“环境”到“列表”
From the `environment` to a `list`
我有一组以 .fin
结尾的数据集。我想创建一个列表并使用
合并它们
ls(pattern = ".fin")
"A.fin" "B.fin" "C.fin" "D.fin" "E.fin" "F.fin" "G.fin" "H.fin" "I.fin"
"J.fin" "K.fin" "L.fin" "M.fin" "N.fin"
我想从上面的行和代码转到下面以 list
开头的行,例如 list(ls(pattern = ".fin"))
;然而,这只是 returns 数据集名称列表中的一个向量。我也尝试过使用 list(get(ls(pattern = ".fin"))
和 list(eval(parse(text = ls(pattern = .fin))))
但无济于事。
list(ls(pattern = ".fin")) ### <- REPLACE THIS SOMEHOW %>%
Reduce(function(dtf1,dtf2) full_join(dtf1,dtf2,by="i"), .)
您可以使用 mget
:
mget(ls(pattern = ".fin"))
A.fin <- c(1,2,3)
B.fin <- c(4,5,6)
mget(ls(pattern = ".fin"))
#$A.fin
#[1] 1 2 3
#$B.fin
#[1] 4 5 6
get
未矢量化,因此您应该 "loop" 覆盖 ls()
返回的任何内容。你也可以这样做
sapply(ls(pattern = ".fin"), FUN = get)
或长途
xy <- ls(pattern = ".fin")
mylist <- vector("list", length(xy))
for (i in 1:length(mylist)) {
mylist[[i]] <- get(xy[i])
}
或使用mget(ls(pattern = ".fin"))
.
我有一组以 .fin
结尾的数据集。我想创建一个列表并使用
ls(pattern = ".fin")
"A.fin" "B.fin" "C.fin" "D.fin" "E.fin" "F.fin" "G.fin" "H.fin" "I.fin"
"J.fin" "K.fin" "L.fin" "M.fin" "N.fin"
我想从上面的行和代码转到下面以 list
开头的行,例如 list(ls(pattern = ".fin"))
;然而,这只是 returns 数据集名称列表中的一个向量。我也尝试过使用 list(get(ls(pattern = ".fin"))
和 list(eval(parse(text = ls(pattern = .fin))))
但无济于事。
list(ls(pattern = ".fin")) ### <- REPLACE THIS SOMEHOW %>%
Reduce(function(dtf1,dtf2) full_join(dtf1,dtf2,by="i"), .)
您可以使用 mget
:
mget(ls(pattern = ".fin"))
A.fin <- c(1,2,3)
B.fin <- c(4,5,6)
mget(ls(pattern = ".fin"))
#$A.fin
#[1] 1 2 3
#$B.fin
#[1] 4 5 6
get
未矢量化,因此您应该 "loop" 覆盖 ls()
返回的任何内容。你也可以这样做
sapply(ls(pattern = ".fin"), FUN = get)
或长途
xy <- ls(pattern = ".fin")
mylist <- vector("list", length(xy))
for (i in 1:length(mylist)) {
mylist[[i]] <- get(xy[i])
}
或使用mget(ls(pattern = ".fin"))
.