r - 如何动态生成数据框变量名称并使用它来处理现有数据框变量?
问题描述
我想做这样的事情:
df <- data.frame("v1"=c(1,2,3), "v2"=c(1,2,3), "v3"=c(1,2,3), "v4"=c(1,2,3))
a <- 2
paste0("df$v", a)
get(paste0("df$v", a))
mget(paste0("df$v", a))
输出应该是df$v2
控制台中打印的内容。
问题:我这样做的主要原因是我想用动态生成的变量名来处理数据框变量。我不想生成新的变量名,我只想为现有的变量名生成可用于寻址它的变量名。我怎样才能做到这一点?
解决方案
你可以eval, parse(
在这里使用
eval(parse(text = paste0("df$v", a)))
#[1] 1 2 3
但是,我认为这不是访问变量的好方法。df$v2
你可以只动态生成,而不是动态生成v2
,这样你就可以做到
df[[paste0("v", a)]]
#[1] 1 2 3
推荐阅读
- python - 为什么熊猫类别/箱用左括号但右括号写?
- java - 在 XML 的 onClick 事件中,我们给出了一个方法名称,文档必须在哪个 java 文件中?
- django - 如何允许 django 最终用户以受控和安全的方式创建自己的表?
- java - 如何为 Phong 着色实现选择光源?
- javascript - 如何使用 html 将文本添加到行的底部?
- math - 给定数字集的所有可能乘法
- wordpress - 远程员工可访问的内部博客
- spring - 代理 url 中的多个选项 - 正确的语法
- javascript - 存储来自 ajax 调用的全局变量
- c# - 如何使用windows应用程序下载excel文件