Как я могу добавить свой фрейм данных к себе (cbind) определенное количество раз? в R - PullRequest
0 голосов
/ 05 марта 2020

Я в основном пытаюсь создать ДЕЙСТВИТЕЛЬНО большой набор данных для целей тестирования, и у меня есть пример набора данных с 600 000 строк.

Я хочу добавить этот df к себе n раз, как бы я это сделал?

Я мог бы привязать его к себе несколько раз вручную, но должен быть автоматизированный способ указать, сколько раз я хочу, чтобы он сам добавлялся?

Ответы [ 3 ]

2 голосов
/ 05 марта 2020

Вы можете использовать [ и повторить соответствующие индексы строк. Пример:

df <- data.frame(x = 1:2, y = letters[11:12])
df[rep(1:nrow(df), 10), ] # or rep(seq_len(nrow(df)), 10)

    x y
1   1 k
2   2 l
1.1 1 k
2.1 2 l
1.2 1 k
2.2 2 l
1.3 1 k
2.3 2 l
1.4 1 k
2.4 2 l
1.5 1 k
2.5 2 l
1.6 1 k
2.6 2 l
1.7 1 k
2.7 2 l
1.8 1 k
2.8 2 l
1.9 1 k
2.9 2 l
0 голосов
/ 05 марта 2020

Вот еще одно решение с использованием dplyr

library(dplyr)

#bind by column the same df repeated n times (in this example = 3)
rep_df<-bind_cols(rep(df,3))
0 голосов
/ 05 марта 2020

Рассмотрим replicate (оболочку для sapply), чтобы создать список дублированных фреймов данных, чтобы затем запускать cbind (или rbind для добавления) один раз в конце:

n <- 5
df_list <- replicate(n, mydata, simplify = FALSE)

final_df <- do.call(cbind.data.frame, df_list)
head(final_df)

Онлайн демо

...