-1

我正在努力解决一些小而重要的语法问题,试图将预定义的路径和文件名传递给 R(OSX,R3.0.1)中的 system() 调用中的 awk;readLines() 和 scan() 无法完成我的工作需要)。

直接在 R 中使用系统和文件名可以正常工作

system("awk 'NR==2' ~/path/filename", intern=TRUE)

然而

filename<-"~/path/filename"
system("awk 'NR==2' filename", intern=TRUE)

返回令人沮丧的错误

character(0)
attr(,"status")
[1] 2
Warning message:
running command 'awk 'NR==2' filename' had status 2 
awk: can't open file filename
source line number 1

我希望我需要在文件名的某个地方转义,但我不知道在哪里或如何。

4

2 回答 2

2

这将是我的第一行 R 代码。:)

我想问题是你用文字字符串写了文件名变量。您应该首先使用字符串连接构建 awk 命令,然后将其传递给system(),例如:

system(paste("awk 'NR==2' ", filename), intern=TRUE) 
于 2013-09-08T22:51:57.117 回答
0

尝试~/path/filename用它的绝对形式代替。例如/home/user/path/filename

于 2013-09-08T22:05:37.877 回答