Lapply для добавления столбцов в каждый Dataframe в списке
мой вопрос в два раза.
- У меня есть список фреймов данных, и я использую lapply в R, я хотел бы добавить столбец в каждый фрейм данных в списке.
- Добавленный столбец должен, по возможности, принимать значения последовательно из списка. У меня есть список с такой же длиной, как и список фреймов данных, и каждое значение в этом списке должно быть добавленным значением столбца.
Причина, по которой я делаю это, заключается в том, что имя файла для каждого набора данных, который я импортирую, содержит информацию о дате, например, имя файла содержит Jun12_2003. Поэтому я хочу импортировать каждый dataset, а затем назначать столбец для года и даты, беря информацию из имени файла (до сих пор делая эту часть с регулярным выражением).
Спасибо за любую помощь!
- Удалите строки в R-матрице, где все данные NA
- Суммировать строки в data.frame или matrix
- Существует pmin и pmax, каждый из которых принимает na.rm, почему нет psum?
- Формат чисел до значительных цифр в R
- Выведите R-команду через что-то вроде try ()
- Разделите аргументы `...` и распределите по нескольким функциям
- Что делает функция invisible ()?
- Получить «встроенные nul (s), найденные во вводе» при чтении csv, используя read.csv ()
- Загрузка нескольких файлов одновременно?
- Извлечение строк для первого вхождения переменной в фрейм данных
- Как изменить языковые настройки в R
- Добавить столбец «ранг» в кадр данных
- promise уже оценивается: рекурсивный аргумент аргумента по умолчанию или более ранние проблемы?
Используйте Map
. Это сокращение от mapply(..., SIMPLIFY = FALSE)
как было предложено Ари.
df1 <- data.frame(x = runif(3), y = runif(3)) df2 <- data.frame(x = runif(3), y = runif(3)) dfs <- list(df1, df2) years <- list(2013, 2014) Map(cbind, dfs, year = years) # [[1]] # xy year # 1 0.8843945 0.6285246 2013 # 2 0.8400041 0.1369520 2013 # 3 0.4398870 0.4660476 2013 # # [[2]] # xy year # 1 0.4153315 0.5831114 2014 # 2 0.9685105 0.2398060 2014 # 3 0.9507591 0.7585670 2014