用于计算多个文件中的百分比到新列的R脚本

时间:2013-07-04 03:37:18

标签: r

我有以下数据:

NCNC    413
JJNC    183

我想添加另一列数据,以百分比形式提供:the percent NCNC and JJNC values.

理想情况下,我想知道如何将此脚本应用于文件夹中的多个文件。谢谢。

1 个答案:

答案 0 :(得分:1)

我必须在这里做出很多假设,因为你不清楚你的具体情况。如果您将工作目录设置为文件所在的位置,并且它们是csv文件,则以下内容可能对您有用。有很多因素可以阻止它的工作,所以如果不这样做,你可能需要回过头来了解更多细节。

#Get list of all files in the folder
files <- list.files("./", ".csv")
#Make a function to read in a file, produce the percent column
perc.fun <- function(x) {
  dat <- read.csv(x, head = FALSE)
  dat$perc <- dat[,2]/sum(dat[,2])
  write.table(dat, paste("perc", x, sep = "_"), sep = ",", row.names = FALSE, col.names = FALSE)
}
#Use lapply to go through the list of files and apply the function
lapply(files, perc.fun)

输出文件应位于旧文件名前面perc_的同一文件夹中。如果您的文件中有标题,那么您需要修改以解释该标题。