使用 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
函数的本地环境中进行。
如评论中所述,将所有内容都放在列表中总是更好。
我有提取列表的一部分并将它们保存到新变量名的重复性任务。
我可以使用 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
函数的本地环境中进行。
如评论中所述,将所有内容都放在列表中总是更好。