使用 sapply 或 for 循环使用字符串在 R 中重复执行任务

repetitive task in R with a character string using sapply or a for loop

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

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

中的 aaa 部分

现在我想自动执行此重复性任务:

aaa_report <- original[["aaa"]]

bbb_report <- original[["bbb"]]

ccc_report <- original[["ccc"]]

...

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

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

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

Error: unexpected string constant in "sapply(dept, function(x) x"_report""

我已经尝试了所有 apply 系列和一个 for loop,但没有成功。

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

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

你很接近,使用assign函数:

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

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

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