【问题标题】:Apply the same editing to all tables in a folder对文件夹中的所有表应用相同的编辑
【发布时间】:2019-11-20 00:42:29
【问题描述】:

我有 200 个数据框,名称为:data1,data2 data3,...这些数据框有基因突变值,它们都在同一个文件夹中,它们的格式如下:

chr . Position . ID    . REF . Alts . VarQaul .  Type    . Gene  
  1 . 9765645  .rs234  .  A  .  C   .   71    .missense  . CDK11
  1 . 34587    .rs43456.  C  .  T   .  128    .missense  . TAS1R
--- . -------- .-------. --- . ---- . ------  .--------- . -----

以此类推,每张表的列数相同,但行数不同

我想知道是否有一种简便的方法来获取第 1 列(Chr)和 2(位置)并将它们与下划线连接到一个新列中,如下所示:1_9765645 然后从文件夹中的所有文件中提取该列并将它们绑定到一个新表中,每个数据框文件的名称作为组合列的列名

data1   .   data2  .   data3 .    
1_65465 .  1_34568 . 2_56899 . 
2_54456 .  3_4568  . 4_65434
2:76543 .  3_65478 . 5_54323 

提前感谢您的任何帮助,非常感谢

最好的问候, 安德烈斯

【问题讨论】:

  • 您有一个 listdata.frames,但是……您的文件夹中也有文件。如果要使用列表,请保留列表并删除文件/文件夹引用。这个问题会得到改进,你们中的很多人提供了文字样本数据,可能是 3 帧中的每一帧中的 3 行,并且在 list 中。还请包括该样本数据的预期输出。

标签: r


【解决方案1】:

尝试以下基本 R 方法

#Get complete path of the files
file_names <- list.files("/path/to/folder/", pattern = "^data", full.names = TRUE)

do.call(rbind, lapply(seq_along(file_names), function(x) {
   #Use read.csv or any other way you can read your data 
   df <- read.csv(file_names[x])
   #Concatenate column 1 and column 2 with "_" as separator and assign 
   #column name as name of the file
   setNames(data.frame(paste(df[[1]], df[[2]], sep = "_")), basename(file_names[x]))
}))

【讨论】:

    猜你喜欢
    • 2020-02-20
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多