2016-04-28 3 views
-1

Я пытаюсь создать data.frame в цикле for. Я хочу назвать data.frame после того, что значение находится в векторе для этой итерации цикла.R: Назовите data.frame после значения в векторе

вектор происходит из City колонки в State data.frame:

State 

City Zip 
A  1 
B  2 
C  3 

То, что я пробовал:

for(i in State$City){ 

i <- data.frame(sub=character(),street=character()) 
} 

Это имя по data.frame i не значение в вектор.

i 

sub street 

Если это была первая итерация в цикле, то я хотел бы, чтобы имя data.frame быть A

A 

sub street 

Если второй итерации затем B

Если третья итерация затем C

Любая помощь будет оценена, пожалуйста, дайте мне знать, нужна ли какая-либо дополнительная информация.

ответ

0

Это должно сделать трюк. Использовать assign

State = as.data.frame(list(City = c("A","B","C"), 
          ZIP = 1:3)) 
for(i in State$City){ 
    assign(i, data.frame(sub=character(),street=character())) 
} 
+0

Я не уверен, почему у вас получилось, что ваш ответ работал отлично. Спасибо. – Dre

+1

@Dre Вероятно, он был отклонен, потому что «присваивание» широко считается очень плохой практикой. Поверь мне, ты пожалеешь дорогу. – joran

+0

Я тоже никогда не использую 'assign'. Именованный список из @joran, вероятно, лучший метод. – anotherFishGuy

2

Способ сделать это в R, чтобы держать вещи в названном списке:

dat_list <- replicate(3,data.frame(sub=character(),street=character()),simplify = FALSE) 
dat_list <- setNames(dat_list,c('A','B','C')) 

Я использовал c('A','B','C'), а не State$City просто сделать код в моем ответе самодостаточными и работоспособным.

+0

Спасибо за ваш ответ. Я бы хотел использовать его, но у меня проблема с ним. Когда я пытаюсь выполнить свой метод, я получаю 'dat_list' как список' 3'. Если я хочу сделать каждый список data.frame, тогда мне нужно сделать 'A <- as.data.frame (dat_list $ A). – Dre

+0

@Dre На самом деле, нет. Результатом является список из трех кадров данных, что является целым. Объект 'dat_list $ A' уже является фреймом данных. (Мы проигнорируем техническую информацию о том, что кадры данных сами по себе являются только определенным типом списка.) – joran

Смежные вопросы