我试图将变量作为参数传递给R中的系统命令。
> system("ls>abc.csv") #this works
> k<-"abc.csv"
> system("ls>k") #this does not work
> system2("ls>k") #this does not work
sh: ls>k: command not found
> system("ls>$k") #this does not work
sh: $k: ambiguous redirect
3条答案
按热度按时间fquxozlt1#
您可以使用
paste
构建OS命令并传递给system
t3irkdon2#
这里的问题是,如果你把变量k放在字符串中,R无法识别它。但如果你想反复使用文件名,把文件名放在变量中确实很有用。
你能试
如果这样做有效,你也可以写一个小函数:
然后你就可以
xesrikrc3#
你可以先用你想要的消息定义一个字符串,例如mystr=paste(“ls”,“/data/files/”),然后调用system as system(mystr),它就会工作。实际上,它与上面的答案几乎相同,但更强调首先将消息创建为字符串