r - 创建一个具有特定名称的列表(使用assign)并将值放入R中
问题描述
我是 R 新手,想要执行以下操作:在我的 for 循环之外创建一个列表,然后在里面填充它 - 棘手的部分是我希望使用某个名称创建列表,为此我使用分配。我在循环中再次调用它时遇到了麻烦。
希望我的例子能让事情变得更清楚(实际代码在循环中做的更多,但这是相关部分):
age_list = list(list(17:19, 20:23),
seq(from= 17,to=50, by=1))
ind_out <- "emp"
l_name <- paste0("out_stats_", ind_out)
# i create the new variable here, you can see it in the env.
assign(l_name,vector(mode = "list", length = length(age_list)))
for (g in 1:length(age_brackets_list)){
out1 = data.frame(name = g)
# and now i wanna put this element into my new variable that i've created, but i can't call it, or use assign
# i've tried
#assign(l_name, out1)
#assign(l_name[[1]], out1)
#do.call("<-", list(l_name[[g]], out1))
}
使用assign
,代码将我创建的列表替换为新的数据框 - 我知道这是 assign 所做的,所以这不起作用。do.call
我遇到了一个错误,因为g=2
它没有被识别为一个列表(由 l_name 表示的变量只有一维(?))。
任何帮助表示赞赏!
解决方案
您需要在由(替代循环)assign
生成的数据帧列表上使用一次:lapply
age_list = list(list(17:19, 20:23),
seq(from= 17,to=50, by=1))
ind_out <- "emp"
l_name <- paste0("out_stats_", ind_out)
assign(l_name, lapply(1:length(age_list), function(x){
#
# more code
#
data.frame(name=g)}))
推荐阅读
- scala - 将 scala.xml.Elem 列表取消列出到单个 scala.xml.Elem
- sql-server - 在从另一个表输入值的位置插入查询
- typescript - 在 Windows Powershell 中出现错误 MSB406“TypeScript.Tasks.CheckFileSystemCaseSensitive”,但相同的构建在 VS Powershell 中有效
- function - 谷歌表格脚本 - 邮件可能触发一列吗?
- php - 如何在 PHP 中显示目录中的图像?
- c++ - 使用 SIMD 优化数值程序
- javascript - 转到页面并打开模态 javascript
- php - 按查询分组适用于 php 5.4,而不是 php 7
- data-mining - 数据集市是位于数据仓库内还是在 Kimball Methodology 中完全独立的数据库?
- drake-r-package - 是否可以从动态分支目标中拆分子目标,以便以后的动态分支目标仅获得一个子子目标?