将数据框名称作为命令行参数传递

时间:2015-11-19 07:33:53

标签: r

我是R的新手,因此需要一些帮助

我正在尝试概括我可以在工作空间中已有的多个数据框对象上运行相同代码的功能。因此,我想将数据帧作为命令行参数传递。我传递的内容如下:

Rscript command_test.R my_data_frame

在脚本文件中,当我使用args [1]时,它不理解它是一个数据帧对象,因此不对数据帧执行任何操作。例如,我只是执行一个简单的操作,如print(colnames((args[1]))来打印数据框中的列名。但它以NULL响应

我尝试使用as.data.frame, as.name等。但是,这些都没有帮助将其理解为数据框架。

这一定是非常微不足道的事情,但我无法理解。因此,最早需要您的专家建议。请帮忙!感谢

1 个答案:

答案 0 :(得分:0)

您尝试使用get函数访问给定名称的变量。

这是一个简短的例子,展示了它的实际效果:

a <- data.frame(a = c(1))
b <- data.frame(b = c(1))
args <- commandArgs(trailingOnly = TRUE)
data.frame.name <- args[1]
print(colnames(get(data.frame.name)))

如果脚本被调用foo.R,那么我们可以获得以下输出:

> Rscript foo.R a
[1] "a"
>  Rscript foo.R b
[1] "b"
>  Rscript foo.R c
NULL

希望这有帮助。