Я пытаюсь импортировать файл CSV и в конечном итоге превратить их в XTS объекты в R.R: Петля через список файлов CSV, чтобы изменить формат даты и создавать XTS объекты
Каждый CSV имеет формат:
Date Open High Low Close Volume
18-Jun-99 2.35 2.35 2.35 2.35 34000
21-Jun-99 2.35 2.35 2.35 2.35 57317
22-Jun-99 2.35 2.35 2.35 2.35 7000
Проблема заключается в дате, однако функция внутри lubridate легко преобразует ее. Для отдельного CSV мой процесс выглядит следующим образом:
require(xts)
CAR.csv <- read.csv("CAR.csv", header = TRUE)
require(lubridate)
CAR.csv$Date <- dmy(CAR.csv$Date)
CAR.csv <- read.zoo(CAR.csv)
CAR.csv <- as.xts(CAR.csv)
Однако мне нужно сделать это в течение многих сотен файлов, так что я хотел бы быть в состоянии проходным их всех. Я застрял в этой точке сейчас:
setwd("C:/Users/Administrator/Desktop/data")
library(xts)
temp = list.files(pattern="*.csv")
for (i in 1:length(temp)) assign(temp[i], read.csv(temp[i], header = TRUE))
Я действительно не знаю, как применить функцию ДМГ только столбец даты в цикле и я хотел бы любую помощь, которая может мне точку в правильном направлении ,
Предыдущая версия моего цикла для CSV-файлов с правильным форматом даты был таков:
setwd("C:/Users/Administrator/Desktop/data")
library(xts)
temp = list.files(pattern="*.csv")
toDate <- function(x) as.Date(x, origin = "2005-01-01")
for (i in 1:length(temp)) assign(temp[i], as.xts(read.zoo((temp[i]), header = TRUE, sep = ",", FUN = toDate)))
С точки зрения полностью воспроизводимый пример здесь является sample folder из CSV-файла, если требуется, однако я подозреваю, что это прямо для наиболее компетентных пользователей R.
Я, конечно же, буду очень благодарен за советы.
Большое спасибо
Здравствуйте, @Alex, спасибо за вашу помощь. Подумайте, используя функцию и lapply, чтобы файлы csv были назначены отдельным объектам XTS в глобальной среде, а не одному объекту? Очень признателен. – trentcroad
Мое удовольствие. Каждый элемент списка данных в моем коде выше - это отдельный объект XTS в глобальной среде. Вы можете назвать каждый элемент - например. 'names (data) <- list_of_files', чтобы вы могли ссылаться на них, такие как' data ['CDM.csv'] 'или' data $ CDM.csv', или вы могли просто переписать их другим именам - например 'first_xts_objext <- data [[1]]'. Надеюсь это поможет. –
В качестве альтернативы, если вы хотите назначить каждый отдельный объект XTS отдельному объекту в глобальной среде, вы можете изменить последнюю строку функции 'load_file' как' assign (имя_файла, csv_file, envir = .GlobalEnv) '. Это должно оставить вас с объектами в глобальной среде с такими именами, как 'CDM.csv' и т. Д. –