首页 > 解决方案 > R批处理txt文件处理

问题描述

我是 R 新手,我想批量处理工作目录中的所有文件。我有很多 .txt 文件,想读入它们,计算一列的频率,计算百分比和所谓的“H-Score”,计算 H-Score 的总和并将其存储在向量中。然后应该处理下一个 .txt 文件,依此类推。

处理完所有文件后,我想将向量写入另一个 .txt 文件。最终的 .txt 文件还应包含输入文件的名称和计算得出的 H-Score 总和。这是我到目前为止所拥有的,但正如你所看到的,我是编程和 R 的绝对新手......

setwd("~/Desktop/Automated Analysis/TXT/") # Set working directory

 # List all txt files including sub-folders
list_of_files <- list.files(path = ".", recursive = TRUE,
                           pattern = "\\.txt$", full.names = TRUE)

library(data.table)

# Read all the files and create a FileName column to store filenames
DT <- rbindlist( sapply(list_of_files, fread, simplify = FALSE),
                        use.names = TRUE, idcol = "FileName" )

br = c(0,1,3,9,15,500) # Set breaks
bins = c(0,1,2,3,4) # Set bins

for (k in 1:length(list_of_files)) { # process all the files in the working directory
  HScore_list = c() # create a vector for storing the results
  for(i in 1:5) { my_vector = c(HScore_list,i) }
  freq = hist(Count, breaks=br, plot=FALSE) 
  df = data.frame(bins, frequency=freq$counts,
          df$percent=df$frequency / sum(df$frequency) * 100,
          df$HScore=df$percent * df$bins)
  HScore = sum(df$HScore)
}
write(HScore_list, "HScore_list.txt", sep="\n")

你知道我想要什么并且可以帮助我吗?

编辑:我的问题是,代码没有产生任何输出。

标签: rfiledataframebatch-processing

解决方案


推荐阅读