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

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

output_df <- df %>% 
    modify_df(input_1) %>% 
    modify_df(input_2) %>% 
    modify_df(input_3) %>% 
    modify_df(input_4)

Это не очень масштабируемо, и я хочу сделать это более программным способом.Я думаю, я также могу сделать что-то вроде:

for(input in input_list){
  output_df <- modify_df(output_df, input)
}

Но я не люблю делать циклы в R. Будет ли эта альтернатива работать?

output_df <- lapply(input, function(x) modify_df(output_df, x))

1 Ответ

0 голосов
/ 26 февраля 2019

Вы могли бы сделать это таким образом (см. Пример ниже, который просто умножает фрейм данных на серию чисел - в данном случае 1:5 - мой вектор входных данных), но я бы предпочелв этой ситуации цикл1013 * В ответ на комментарий ниже

<<- изменяет df в родительской среде, а не в среде функции.df модифицируется как побочный эффект вызова функции, а не возвращается непосредственно функцией, что может усложнить жизнь при отладке.Однако использование цикла проясняет, что происходит, поскольку функция возвращает измененный фрейм данных.

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