【发布时间】:2021-08-18 02:29:50
【问题描述】:
我有大量具有确切格式的文件,我想删除所有文件的前六行和某些列(第 2 到 8 列、第 12 到 16 列、第 18 到 23 列等)。最好我也不希望处理过的文件覆盖原始文件。我很确定在 R 中有一种方法可以做到这一点,但还没有弄清楚。有什么建议?提前致谢!
【问题讨论】:
标签: r
我有大量具有确切格式的文件,我想删除所有文件的前六行和某些列(第 2 到 8 列、第 12 到 16 列、第 18 到 23 列等)。最好我也不希望处理过的文件覆盖原始文件。我很确定在 R 中有一种方法可以做到这一点,但还没有弄清楚。有什么建议?提前致谢!
【问题讨论】:
标签: r
这些 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))
【讨论】:
我认为您可以创建一个函数来将数据集导入为 .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")
希望对你有帮助
【讨论】: