如何批量将序列命名的变量存入列表,无需逐个手动输入?
批量将序列命名变量存入列表的方法
这里有几种高效的方法可以实现批量存入,不用逐个输入变量名:
方法一:使用
mget()函数(推荐)
这是最直接且安全的方式,mget()可以根据字符向量获取对应变量,自动组成列表,还会保留变量名作为列表元素名:mylist <- mget(paste0("p", 1:3))执行后
mylist的元素会分别对应p1、p2、p3,且元素名就是"p1"、"p2"、"p3"。方法二:结合
ls()和正则表达式批量筛选
如果你的变量都是p开头加数字的命名规则,还可以用正则匹配自动筛选所有符合条件的变量,不用指定数字范围:mylist <- mget(ls(pattern = "^p\\d+$"))其中
^p\\d+$是正则表达式,匹配以p开头、后面跟一个或多个数字的变量名。方法三:用
eval()和parse()实现(不推荐)
这种方法也能实现,但parse()和eval()存在安全风险(比如处理不可信的字符时容易出问题),仅作参考:mylist <- lapply(paste0("p", 1:3), function(x) eval(parse(text = x)))
内容的提问来源于stack exchange,提问作者gdeniz
相关产品推荐
相关产品推荐

