R中的重复任务,使用sapply或for循环的字符串

时间:2016-12-22 19:33:54

标签: r for-loop rstudio lapply sapply

我有重复的任务,即提取列表的一部分并将它们保存为新的变量名。

我可以使用aaa_report <- original[["aaa"]],我有一个名为aaa_report的新变量,它是列表变量aaa

中的original部分

现在我想自动完成这个重复的任务:

aaa_report <- original[["aaa"]]

bbb_report <- original[["bbb"]]

ccc_report <- original[["ccc"]]

...

我有一个名为dept的单独“字符”列表变量,其中包含所有名称dept <- c("aaa", "bbb", "ccc", "...")

我尝试使用sapply并收到此错误。

sapply(dept, function(x) x"_report" <- original[[x]])
  

错误:“sapply”中的意外字符串常量(dept,function(x)   X “_report”“

我已尝试过所有apply家庭和for loop但没有运气。

for(x in dept){
  x"_report" <- original[[x]]
}

我是R的初学者和一般的编程,所以任何建议都会有很大的帮助。

1 个答案:

答案 0 :(得分:0)

你很近,使用assign功能:

for(x in dept) assign(paste0(x, "_report"), original[[x]])

它不适用于apply函数,因为赋值将位于apply函数的本地环境中。

如评论中所述,将所有内容保存在列表中总是更好。

相关问题