r - 如何在循环中将变量的名称作为字符串获取?
问题描述
我想创建一个函数来正确显示一些 R 变量的名称。
我尝试使用deparse(substitute(variable))
which 工作正常,但我无法让它在循环中工作
a = 5
b = 6
c = 7
myobjects = c(a, b, c)
for (i in 1:3){
cat(deparse(substitute(myobjects [i])), " : ", myobjects [i], "\n")
}
返回
myobjects[i] : 5
myobjects[i] : 6
myobjects[i] : 7
代替
a : 5
b : 6
c : 7
解决方案
“myobjects”仅包含对象“a”、“b”、“c”的值。如果我们需要获取原始对象,创建一个命名vector
并获取names
myobjects <- c(a = a, b = b, c = c)
for(i in 1:3) cat(names(myobjects[i]), " : ", myobjects[i], "\n")
#a : 5
#b : 6
#c : 7
或者正如评论中提到的@IceCreamToucan,它可以像矢量化一样被矢量化(没有循环for
)paste
cat(paste0(names(myobjects), ' : ', myobjects), '\n', sep = '\n')
推荐阅读
- powershell - 如何向 SharePoint 添加列以显示文件版本计数和这些版本总和的大小?
- python - Python代码的自动完成和文档
- gnuplot - Gnuplot 强制关闭,以十进制绘制数据 x 以整数绘制
- java - 为 Minecraft 改装设置工作区时出错
- javascript - 使用 javascript 将时间戳转换为 yyyy-mm-dd hh:mm:ss 格式
- repository - 我应该在哪里处理干净架构中的实体属性集合
- flutter - 如何向下扩展定位的 Container?
- python - 将命令传递给 KiTTY UI
- react-native - 为 react-native 0.60.6 配置转换内联环境变量
- mongodb - Yii2 MongoDB 从文档中删除单行