如何避免在R中的csv文件中重复列名?

时间:2018-07-28 10:51:56

标签: r

我有一个csv文件,必须从中复制一些csv文件中的某些行。但是,我只希望第一行具有列名,其余行不应具有任何列名。以下是附带的代码。以下代码为我提供了每一行之前的列名。

for(f in 1:length(file$mismatches)){
  if((file$mismatches[f]==0)==T ){ 
    write.table(x=file[f,], append = T, file = paste0('0_mismatches','.csv'),sep=",",col.names=c('organism_name_spacer','organism_spacer_accession_number','organism_spacer_id','organism_name_protospacer','organism_protospacer_accession_number','spacer_sequence','protospacer_sequence','mismatches'),row.names = F)

  }
}

1 个答案:

答案 0 :(得分:0)

如果所有文件具有相同的列名,并且顺序相同,则可以执行以下操作:

require(tidyverse)
files_to_load <- {list of file paths to load}
df <- data_frame(filename = files_to_load)
df <- df %>% 
  mutate(data = map(filename, read_csv, [other arguments to read_csv]))  
dfs_as_list <- pull(df, data)
dfs_as_single_df <- bind_rows(dfs_as_list)

未尝试过此操作,因为您给出的示例不可复制,因此您需要进行调整。

pull函数提取数据(列表列)以生成data_frames列表。

bind_rows接受data_frames列表作为单个输出,并尝试将它们合并。

read_csv的其他参数可能包含col_types的参数,以便所有要连接的data_frames中的列类型都一致。