2015-09-23 3 views
-1

У меня есть несколько фреймов данных, к которым я бы хотел добавить новый столбец, содержащий год. Вместо того, чтобы делать это за раз, я хотел бы использовать цикл for и список для ссылки на них.Ссылка на dataframe из списка в r

Вот мой код (список уменьшается в размерах, чтобы сэкономить место здесь):

my.list < - список ("Accounting.and.Finance", «Aeronautical.and.Manufacturing.Engineering », "Agriculture.and.Forestry", " American.Studies")

для (я в 1: длина (my.list)) {my.list [[я]] $ Год < - 2016}

К сожалению, вместо того, чтобы добавить столбец год каждому dataframe, она дает мне следующие предупреждения: сообщения

Предупреждение:

1: В subject.list [[я]] $ Год < - 2016: Принуждение LHS в список

2: в subject.list [[я]] $ Год < - 2016: Принуждение LHS в список

3: в subject.list [[я]] $ Год < - 2016: Принуждение LHS к списку

4: В subject.list [[я]] $ Год < - 2016: Принуждение LHS в список

и добавив $ Год в списке. Может ли кто-нибудь предложить какие-либо советы о том, как я должен это делать?

Благодаря

+0

' my.list' - это список векторов символов, а не список data.frames. Может, без кавычек? 'my.list <- list (Accounting.and.Finance, Aeronautical.and.Manufacturing.Engineering, Agriculture.and.Forestry, American.Studies)' – Roland

+0

Спасибо Roland. Это добавляет столбец за год к каждому фрейму данных в списке, но не к отдельным отдельным кадрам данных. Любые мысли о том, как использовать этот список для обновления отдельных фреймов? – K123

+0

Нет причин для этого. Эти data.frames должны быть вместе в списке для начала. Может быть, они даже должны быть объединены в один data.frame. – Roland

ответ

0

Ваш примера было трудно использовать, так что я снова построил,

my.list <- list(
Accounting.and.Finance <- data.frame(A=seq(1,10), B=seq(11,20),C=seq(21,30)), 
Aeronautical.and.Manufacturing.Engineering <- data.frame(A=seq(1,10), B=seq(11,20),C=seq(21,30)), 
Agriculture.and.Forestry <- data.frame(A=seq(1,10), B=seq(11,20),C=seq(21,30)), 
American.Studies <- data.frame(A=seq(1,10), B=seq(11,20),C=seq(21,30)) 
) 

, который может быть использован для добавления столбца года, используя lapply функции,

my.list <- lapply(my.list, cbind, Year=seq(2001,2010)) 
Смежные вопросы