【问题标题】:Remove certain rows and columns in multiple csv files under the same folder in R删除R中同一文件夹下多个csv文件中的某些行和列
【发布时间】:2021-08-18 02:29:50
【问题描述】:

我有大量具有确切格式的文件,我想删除所有文件的前六行和某些列(第 2 到 8 列、第 12 到 16 列、第 18 到 23 列等)。最好我也不希望处理过的文件覆盖原始文件。我很确定在 R 中有一种方法可以做到这一点,但还没有弄清楚。有什么建议?提前致谢!

【问题讨论】:

    标签: r


    【解决方案1】:

    这些 tidyverse 代码可能会有所帮助。

    library(tidyverse)
    
    files <- list.files(".", pattern = ".csv")
    
    dat <- files %>% 
      map_dfr(
        ~ read_csv(.x) %>% 
          slice(7:nrow(.))
      ) %>% 
      select(-c(2:8, 12:16, 18:23))
    

    【讨论】:

      【解决方案2】:

      我认为您可以创建一个函数来将数据集导入为 .csv 文件,并且在函数内,您可以指定删除列,然后删除行等,然后您可以返回该数据

      library(tidyverse)
      data_imp_fun<- function (path="C:/Users/xyz/Documents/data1.csv") # you can change path when u tried to import a data
      {
      file_path=(paste(Path))
      data<-read_excel(file_path)
      data<-data[,!names(data) %in% c("column2 name","column8 names",column16 name")]# this line will help you removing you desire columns just input the names of each column you #want to remove
      data<-data[-c(1:6),] # this line will help you to remove first six rows
      return(data)
      }
      

      现在您可以将数据导入为

      data_1<-data_imp_fun(path="C:/Users/xyz/Documents/data1.csv")
      data_2<-data_imp_fun(path="C:/Users/xyz/Documents/data2.csv")
      

      希望对你有帮助

      【讨论】:

      • 谢谢!有没有办法遍历所有文件?好像我需要手动导入每个 csv 文件?
      • 在这种情况下,您必须为函数路径和文件名定义参数,您可以使用粘贴函数来构建路径名称,然后列出所有文件的名称,然后使用for循环或应用函数你可以轻松导入每个CSV文件,但再次循环和应用函数
      猜你喜欢
      • 2023-03-05
      • 2022-01-02
      • 2014-03-26
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      相关资源
      最近更新 更多