Используйте lapply для просмотра списка фреймов данных и изменения класса определенного столбца.
Я пытаюсь просмотреть список, в котором есть два фрейма данных, и я хочу изменить класс столбца 2 с фактора на данные в каждом из этих фреймов данных. Я могу решить это с помощью цикла for, но я хочу научиться делать это с помощью lapply.
tom <- data.frame(a = c(1,2,3), b = c("2017-01-09","2017-01-10","2017-09-11"))
kate <- data.frame(a = c(4,5,6), b = c("2017-01-09","2017-01-10","2017-09-11"))
testList <- list(tom,kate)
f <- lapply(testList, function(x) {
x[,2] <- as.Date(x[,2])
})
Я ищу f, чтобы вернуть исходные кадры данных, но с изменением класса для столбцов 2. Вместо этого я получаю список только с датами (не исходные кадры данных). Какие-нибудь мысли?
1 ответ
Решение
Нам нужно вернуть "х" или list
элемент в 'F'
f <- lapply(testList, function(x) {
x[,2] <- as.Date(x[,2])
x
})
Более компактный вариант без использования анонимного вызова функции transform
f1 <- lapply(testList, transform, b = as.Date(b))