• R语言
  • linux下如何来运行R脚本

如:我写了一个简单的r脚本文件test.r

---------------------

#!/usr/bin/R

a<-c(1:20)

b<-rep(c(1:4),5)

c<-a/b

data<-data.frame(a,b,c)

write.table(data,file="/home/andornot/r_test",row.names=FALSE)

q();

-------------------------

在linux(ubuntu)下:

$ R test.r

报错:

ARGUMENT 'test.r' _ignored_

接着进入R环境[s:12]

-------------------------------------

请问,如何来运行这个脚本才能成功地把数据写入指定的文件中。谢谢!

R CMD BATCH filename

#!/usr/bin/R # 去掉

q(); # 去掉

回复 第1楼 的 andornot:http://blog.sina.com.cn/s/blog_61f013b80100yhef.html,可以参考这个。

回复 第1楼 的 andornot:

In terminal, copy the fowllowing code:

<br />
cat >>test.sh<<EOF__<br />
#!/usr/bin/Rscript<br />
a<-c(1:20)<br />
b<-rep(c(1:4),5)<br />
c<-a/b<br />
data<-data.frame(a,b,c)<br />
write.table(data,file="/home/andornot/r_test",row.names=FALSE)<br />
EOF__<br />
chmod u+x test.sh<br />
./test.sh<br />
</p>

#!/usr/bin/R 换成#!/usr/bin/Rscript即可

推荐 4 楼利用 Shebang 行执行脚本的方法。

R CMD BATCH 这种方式更多是为 Windows 准备的。

回复 第6楼 的 nan.xiao:按照4楼的方法可以解决,谢谢enthumelon

也谢谢大家的回复!

回复 第5楼 的 vz33:在将#!/usr/bin/R 换成#!/usr/bin/Rscript后,在命令行中执行:Rscript test.r就可以了。

写上 Shebang 行再用 chmod 加上执行权限以后 在 Bash 中直接执行 ./foo.R 就可以了 这样无论是用在 crontab 规则中还是其他 写起来都简洁方便 无须再用 Rscript 加文件名 。。。