Как мне составить список фреймов данных, сгенерированных циклами в R? - PullRequest
1 голос
/ 05 мая 2019

Как мне составить список фреймов данных, сгенерированных циклами?

Это мой цикл:

> for (i in 1:3) {
+     x <- c(1:3)
+     y <- c(1:3)
+     df1 <- data.frame("col1"=i*3, "col2"=y+i*3)
+     print(df1)
+ }
  col1 col2
1    3    4
2    3    5
3    3    6
  col1 col2
1    6    7
2    6    8
3    6    9
  col1 col2
1    9   10
2    9   11
3    9   12

Но когда я запускаю df1, это происходит:

> print(df1)
  col1 col2
1    9   10
2    9   11
3    9   12

Вот что я хотел бы увидеть:

print(df1)
  col1 col2
1    3    4
2    3    5
3    3    6
  col1 col2
1    6    7
2    6    8
3    6    9
  col1 col2
1    9   10
2    9   11
3    9   12

Любая помощь очень ценится! спасибо

1 Ответ

4 голосов
/ 06 мая 2019

Вы можете сделать

x <- c(1:3)                       # no need for y because its the same as x
out <- vector("list", length(x))  # pre-allocate space for the three data.frames 
for (i in x) {
  # fill the list with the data.frames
  out[[i]] <- data.frame("col1" = i*3, "col2" = x + i*3)
}

Результат

out
#[[1]]
#  col1 col2
#1    3    4
#2    3    5
#3    3    6

#[[2]]
#  col1 col2
#1    6    7
#2    6    8
#3    6    9

#[[3]]
#  col1 col2
#1    9   10
#2    9   11
#3    9   12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...