Функция R для автоматизации добавления столбца даты и последующего экспорта CSV несколько раз - PullRequest
0 голосов
/ 13 июня 2019

У меня есть много CSV-файлов, которые разделены по дням.Я написал код, чтобы вручную импортировать каждый из них, добавлять столбец даты и экспортировать их снова.

Но это требует от меня ввода сотен имен файлов, чтобы изменить один и тот же код на несколько строк.Я хочу создать функцию, которая перебирает и добавляет столбец даты на основе имени, а затем экспортирует новый CSV.

Делая это, я, по сути, должен вводить каждый файл в эту формулу, чтобы достичь того, чего я хочу.Есть ли способ сделать это без всего ручного труда.

Oct0418 <- read.csv("10.04.18 (x).csv")
Oct0418$Date <- as.Date("2018/10/04")
write.csv(Oct0418, "10.04.18.csv")

Oct1118 <- read.csv("10.11.18 (x).csv")
Oct1118$Date <- as.Date("2018/10/11")
write.csv(Oct1118, "10.11.18.csv")

1 Ответ

2 голосов
/ 13 июня 2019
#list all the csv files in the desired folder
temp    <- list.files(pattern="*.csv")

#read them into r and store them in a list
myfiles <- lapply(temp, read.csv)

#use substr to get the part of their name that is going to be used as a date
#and bind that as a new column to the existing data in `myfiles` list
myfiles <- lapply(1:length(myfiles), 
                    function(i) cbind("Date"=as.Date(substr(temp[i], 1, 8), 
                                                      format = "%m.%d.%y"), 
                                       myfiles[[i]]))

#write these modified datasets back to csv files
           sapply(1:length(myfiles), 
                    function(i) write.csv(myfiles[[i]], temp[i]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...