Как создать определенное количество столбцов динамически на основе условия заданного столбца в R - PullRequest
0 голосов
/ 01 сентября 2018

Я хочу создать динамическое число столбцов на основе некоторого условия, заданного в R:

Скажем, у меня есть фрейм данных с именем x:

Data Needed
   3

Выходной фрейм данных y должен выглядеть следующим образом:

 Month_1    Month_2   Month_3
    10        13        25

А если запись во входном фрейме данных равна:

Data Needed
   6

Вывод должен выглядеть следующим образом:

   Month_1   Month_2    Month_3  Month_4    Month_5  Month_6
     10        13         25       18         11      29

Мне нужна помощь в этом, так как я новичок в R. Было бы здорово, если кто-то ответит на эту тему.

1 Ответ

0 голосов
/ 02 сентября 2018

Пожалуйста, смотрите как ниже:

create_df <- function(df, filler = c(10, 13, 25, 18, 11, 29)) {
  as.data.frame(matrix(filler[1:df$DataNeeded], nrow = 1, dimnames = list(NULL, paste0("Month_", 1:df$DataNeeded))))
}


df <- data.frame(DataNeeded = 3)
#      DataNeeded
# 1          3
create_df(df)
# Month_1 Month_2 Month_3
# 1      10      13      25

df <- data.frame(DataNeeded = 6)
create_df(df)
# Month_1 Month_2 Month_3 Month_4 Month_5 Month_6
# 1      10      13      25      18      11      29

Однако, если вы вызовете функцию create_df для DataNeeded> 6, вам нужно будет указать аргумент filler вручную

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...