R 删除包含全局环境中多个大型数据帧的特定NA列的行
我有大量的CVS文件需要通过删除特定列中具有n/a的所有行来进行整理。因此,与其在Excel中手动打开每一个,我想知道是否有可能编写一些R代码:R 删除包含全局环境中多个大型数据帧的特定NA列的行,r,excel,dataframe,R,Excel,Dataframe,我有大量的CVS文件需要通过删除特定列中具有n/a的所有行来进行整理。因此,与其在Excel中手动打开每一个,我想知道是否有可能编写一些R代码: 将文件夹中的所有CSV文件加载到R 分别删除每个数据文件的特定列(“错误”)中包含n/a的所有行 将所有剩余n/a更改为“” 将整理后的数据保存为单个Excel文件(保留原始名称,并在末尾加上一点,以便我可以区分原始文件和处理后的文件) 我能够对单个文件执行上述步骤,但我没有太多的运气扩展代码,以便对多个CSV文件执行相同的操作 如果我一次处理一个文件
setwd('#folderlocation')
df <- read.csv("#filename",
header=TRUE)
working <- df[!is.na(df$Error),]
working <- sapply(working, as.character)
working[is.na(working)] <- ""
library(xlsx)
write.xlsx(working,"test.xlsx")
但我被困在如何从那里开始
我追求的最终结果是,一旦使用代码处理每个文件,在“错误”列中将不会有任何空行,并将保存为Excel文件。
在任何情况下,我都不想合并数据帧,因为试图解开哪些数据属于哪个文件会变得太混乱
感谢大家的帮助:-)您的Rscript myscript.R:
library(xlsx)
args = commandArgs(trailingOnly=TRUE)
df <- read.csv(args[1], header=TRUE)
working <- df[!is.na(df$Error),]
working <- sapply(working, as.character)
working[is.na(working)] <- ""
write.xlsx(working,paste(args[1], "test.xlsx", sep="_")
您的Rscript myscript.R:
library(xlsx)
args = commandArgs(trailingOnly=TRUE)
df <- read.csv(args[1], header=TRUE)
working <- df[!is.na(df$Error),]
working <- sapply(working, as.character)
working[is.na(working)] <- ""
write.xlsx(working,paste(args[1], "test.xlsx", sep="_")
也许可以从命令行在for循环中调用R脚本?这可以通过
Rscript yourscriptname.R input_file.csv
完成。然后,您只需要在R脚本中添加以下两行:args=commandArgs(trailingOnly=TRUE)
并从命令行args获取文件名:df也许您可以从命令行在for循环中调用R脚本?这可以通过Rscript yourscriptname.R input_file.csv
完成。然后,只需将以下两行添加到R脚本:args=commandArgs(trailingOnly=TRUE)
并从命令行args获取文件名:df
bash
cd /folder/with/input/data
for FILE in *.CSV
do
Rscript myscript.R $FILE
done