我有3个data.frames(tab1,tab2),我需要一个R脚本将它们与cbind结合起来,并将输出保存到另一个表中。
所以我这样做:
tab1=read.table("imput_tab1.txt",header=TRUE,fill=TRUE,stringsAsFactor=FALSE)
tab2=read.table("imput_tab2.txt",header=TRUE,fill=TRUE,stringsAsFactor=FALSE)
myfunction <- function(tab1, tab2 )
{
tab3=cbind(tab1,tab2)
}
write.table(tab3, file="output_table.txt",sep="\t", row.names = FALSE, col.names=T, qmethod = "double", quote=F)
我想在命令行上执行所有这些操作。 像
这样的东西R Myscript.r imput_tab1.txt imput_tab2.txt > output_table.txt
可能吗?
答案 0 :(得分:1)
您的脚本应该是:
#the variable args below captures the arguments you pass from the
#command line i.e. the names of the two files and stores them in a vector
args <- commandArgs(trailingOnly = TRUE)
tab1=read.table(args[1],header=TRUE,fill=TRUE,stringsAsFactor=FALSE)
tab2=read.table(args[2],header=TRUE,fill=TRUE,stringsAsFactor=FALSE)
#you never used your function in your code so just do the below
tab3=cbind(tab1,tab2) #you don't necessarily need a function to cbind two tables
write.table(tab3, file="output_table.txt",sep="\t", row.names = FALSE, col.names=T, qmethod = "double", quote=F)
我们假设您上面的脚本名为test.R
您应该从命令行运行它:
Rscript test.R imput_tab1.txt imput_tab2.txt
它会起作用(假设文件位于正确的位置)。