【发布时间】:2021-04-30 19:49:05
【问题描述】:
我编写了一些代码,需要应用于 62 个文件。我想我可以以某种方式使用 for 循环或 lapply 函数,但我正在努力想出一些可行的方法。这是我为清理数据而编写的函数:
clean.data <- function(messyData){
#remove rows with NA
messyData <- dplyr::filter(messyData, Name != 'NA')
#remove rows containing "similar" in Name
messyData <- dplyr::filter(messyData, !grepl('Similar', Name))
#standardize column 8 name (P_value_T)
names(messyData)[8]<-"P_value_T"
#remove p-vals > .05
messyData <- dplyr::filter(messyData, P_value_T < .05)
messyData <- dplyr::filter(messyData, P_value_T != 'NA')
#remove duplicates
messyData <- messyData[!duplicated(messyData$Name),]
#keep only names
cleanData <- messyData[, c("Name")]
return(cleanData)
}
当我运行以下命令时:
messydf <- read.csv("res2.csv", na.strings = c("", "NA"), header = TRUE)
table <- clean.data(messydf)
write.table(table, file="res2_cleaned.txt", sep="\t", quote=FALSE)
我得到了正确的输出为 .txt! text file image
现在我需要对 res3.csv、res4.csv 等做同样的事情,并将它们保存到新文件中,可能是 res3_clean.csv、res4_clean.csv 等。
【问题讨论】:
标签: r loops for-loop lapply data-cleaning