R 将sav文件转换为csv并将其重命名为原始文件的脚本

R 将sav文件转换为csv并将其重命名为原始文件的脚本,r,shell,csv,spss,R,Shell,Csv,Spss,我有一个使用R将sav文件转换为csv的脚本。挑战是我希望输出文件名与作为参数传递的文件名相同,扩展名为.csv 语法为:R-Script.sh abc.sav 输出文件名应为abc.csv 这是R码 argv <- commandArgs(TRUE) Datafile <- argv[1] library(foreign) dataSPSS <- read.spss(Datafile, to.data.frame=TRUE) dim(dataSPSS) write.table

我有一个使用R将sav文件转换为csv的脚本。挑战是我希望输出文件名与作为参数传递的文件名相同,扩展名为.csv

语法为:R-Script.sh abc.sav

输出文件名应为abc.csv

这是R码

argv <- commandArgs(TRUE)
Datafile <- argv[1]
library(foreign)
dataSPSS <- read.spss(Datafile, to.data.frame=TRUE)
dim(dataSPSS)
write.table(dataSPSS, file = "ifilename.csv", append = TRUE, quote = FALSE, sep = "|",eol = "\n", na = "", dec = ".", row.names = FALSE,col.names = TRUE, qmethod = c("escape", "double"))'

输出文件名是abc.sav.csv。我希望它是abc.csv

没有你的脚本,很难给出一个绝对的答案。您可以使用strsplitanyfile.sav提取文件名,split=[.][[1]][1],因此您需要一个bash脚本方法来生成用于输出的.csv文件名。。。inputFile=$1;outputFile=${inputFile%.*}.csv应该处理这部分问题。祝你好运。给我们看看你的剧本!如果您的脚本已经分析了命令行参数,那么这很容易。@Thomas请查找我正在使用的代码
DataFile=$1
Rscript convert_sav-csv.r $DataFile
mv ifilename.csv $DataFile.csv '