在sapply中以编程方式使用rls(模式=…)

在sapply中以编程方式使用rls(模式=…),r,lapply,sapply,R,Lapply,Sapply,我不能让下面的工作 我创建了6个变量A_N和B_N,其中N=1:3。我想使用数字向量和sapply从名称空间中获取值。在sapply之外,ls(pattern=paste0(…)似乎可以工作。但是在sapply中,它失败了 rm(list=ls()) A_1 <- letters[1] A_2 <- letters[1] A_3 <- letters[1] B_1 <- letters[1] B_2 <- letters[1] B_3 <- letters[1

我不能让下面的工作

我创建了6个变量
A_N
B_N
,其中
N=1:3
。我想使用数字向量和
sapply
从名称空间中获取值。在sapply之外,
ls(pattern=paste0(…)
似乎可以工作。但是在sapply中,它失败了

rm(list=ls())
A_1 <- letters[1]
A_2 <- letters[1]
A_3 <- letters[1]
B_1 <- letters[1]
B_2 <- letters[1]
B_3 <- letters[1]
ls()
# [1] "A_1" "A_2" "A_3" "B_1" "B_2" "B_3"

N <- c(1, 2)

ls(pattern=paste0("A_", 1))
# [1] "A_1"

sapply(N, function(i) ls(pattern=paste0("A_", i)))
# [[1]]
# character(0)

# [[2]]
# character(0)
rm(list=ls())

A_1我认为这与sapply函数在自己的环境中运行这一事实有关,您可以获得如下父环境:

sapply(N, function(i) ls(pattern=paste0("A_", i),envir=parent.env(environment())))
输出:

[1] "A_1" "A_2"

希望这有帮助

我认为这与sapply函数在自己的环境中运行有关,您可以获得如下父环境:

sapply(N, function(i) ls(pattern=paste0("A_", i),envir=parent.env(environment())))
输出:

[1] "A_1" "A_2"

希望这有帮助

啊,有道理。谢谢啊,有道理。谢谢