Я действительно надеюсь, что кто-то может помочь мне в этом. У меня есть 40 файлов excel с данными. Каждый из этих файлов содержит несколько столбцов данных, и мне нужно взять только 2 из них. При «чтении» этих файлов, чтобы вывести их в R в виде фреймов данных, я должен назвать их «клиентом» и числом (например, клиент1, клиент2 и т. д.) и, возможно, добавить в каждый из них столбец со значениями, взятыми из список, который у меня уже есть в R, называется p и должен называться Pasqua во фреймах данных. я написал этот код
for (e in seq(1:40)){
assign(paste0("client",e),read_excel(paste("C:/Users/Windows 10/Desktop/DS/",e,".xlsx",sep=""),
col_types = c("skip", "numeric", "skip", "numeric", "skip", "skip", "skip","skip", "skip")))}
Это работает, и у меня есть 40 фреймов данных, как я хотел.
Но если я попытаюсь вставить в цикл код для добавления столбца, я столкнусь с несколькими ошибками: я пытался таким образом
paste0("client",e,"[,Pasqua]")<-p
У меня ошибка target of assignment expands to non-language object
, так как кажется, что R не может обрабатывать присваивания с именем переменных, "построенных" таким образом
Тогда еще и таким образом
df[,"Pasqua"]<-p
У меня есть эта ошибка object of type 'closure' is not subsettable
Просматривая здесь сообщения других пользователей, я понимаю, что можно использовать lapply(), но я не нашел способа использовать его правильно. Может кто-нибудь объяснить мне, как справиться с этим? заранее спасибо
1 ответ
Это должно сработать:
# data
client3 <- client2 <- client1 <- data.frame(col1 = 1:3, col2 = 1:3)
p <- 4:6
# assigning new column to each df
for (e in 1:3) {
eval(parse(text = paste0('client', e, '[,"Pasqua"] <- p')))
}
Похожие вопросы
Связанные вопросы
Новые вопросы
r
R — это бесплатный язык программирования с открытым исходным кодом и программная среда для статистических вычислений, биоинформатики, визуализации и общих вычислений. Пожалуйста, используйте минимально воспроизводимые примеры, которые другие могут запустить с помощью копирования и вставки. Показать желаемый результат. Используйте dput() для данных и укажите все небазовые пакеты с помощью library(). Не вставляйте изображения для данных или кода, вместо этого используйте блоки кода с отступом. Для вопросов по статистике используйте https://stats.stackexchange.com.