从多个txt文件中提取某些列并另存为新的csv文件?

时间:2019-08-23 00:35:24

标签: r

我大约有100个txt文件。我正在尝试从每个文件中提取某些列,然后将其另存为每个txt文件的新csv文件。另外,我想将名称设置为类似于“((原始txt文件的名称)_new.txt”)。

到目前为止,我已经能够一次读取所有文件,但是我不确定如何从这里开始。任何帮助将不胜感激。

data_all=list.files(pattern='.*.txt')
data<-lapply(data_all,read.csv,header=TRUE,sep='\t',skip=9)

2 个答案:

答案 0 :(得分:3)

也许您可以使用fread

library(data.table)
data_all=list.files(pattern='.*.txt')

read.certain <- function(x, certain= certain_cols){fread(x), select = certain}
dat <- lapply(data_all,read.certain)

答案 1 :(得分:0)

我会这样做。

Merge1$Namevalue <- ifelse(Merge1$Name %in% Merge1$Name1, Merge1$Name2, 
                    paste("Unknown"),
                    ifelse(Merge1$Name %in% Merge1$Name3, Merge1$Name2, paste("Unknown"))

然后,选择所需的列。

库(dplyr)

# Merge all CSV files into a single dataframe
# Set the directory
setwd("C:/Users/rshuell/Desktop/input_files")

# Get a list of all the files in the directory
file_list <- list.files()

# Start merging the files in the directory into a single dataframe
for (file in file_list){
  # if the merged dataset doesn't exist, create it
  if (!exists("dataset")){
    dataset <- read.table(file, header=TRUE, sep="\t")
  }
  # if the merged dataset does exist, append to it
  if (exists("dataset")){
    temp_dataset <-read.table(file, header=TRUE, sep="\t")
    dataset<-rbind(dataset, temp_dataset)
    rm(temp_dataset)
  }
}

最后,将数据框保存到CSV文件。

df1 %>%
  select(X, Y, Z)

Or ....

select(df1, X, Y, Z)