Использование цикла for для создания нового фрейма данных в R - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь использовать цикл for в R для создания отдельных фреймов данных для моего результата разделения. У него могут быть лучшие решения, но я новичок в R, поэтому любые комментарии приветствуются.

''» Например: '' '

For (i in 1:100)
{i<-df[[i]]}

''» Я ожидаю получить что-то вроде

'1' equal to df[[1]]
'2' equal to df[[2]]
'3' equal to df[[3]]
.
.
.
'i' equal to df[[i]]

но он получает только последний i:

'100' which is equal to  df[[100]]

Как получить отдельные кадры данных для каждого i?

1 Ответ

1 голос
/ 26 марта 2019

Поскольку вам требуются отдельные фреймы данных, вы можете использовать следующее для создания списка фреймов данных:

df = NULL
for (i in 1:100) {
  df[[i]] = data.frame(i)
}

Вы можете получить доступ к каждому фрейму данных в списке, используя индекс списка. Для экзамена

> df[[1]]
  i
1 1
> df[[2]]
  i
1 2

Вы можете проверить, что каждый элемент в списке является фреймом данных

> str(df) # Partial output given
List of 100
 $ :'data.frame':   1 obs. of  1 variable:
  ..$ i: int 1
 $ :'data.frame':   1 obs. of  1 variable:
  ..$ i: int 2
 $ :'data.frame':   1 obs. of  1 variable:
  ..$ i: int 3
 $ :'data.frame':   1 obs. of  1 variable:
  ..$ i: int 4
.
.
.

Как только вы освоитесь с R, лучшим способом достижения этого результата будет векторизация задачи, например, с помощью lapply

df = lapply(1:100, data.frame)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...