Добавьте столбец во фрейм данных при использовании lapply в R - PullRequest
0 голосов
/ 14 июля 2020

Для приведенного ниже кода я получаю фрейм данных (DF1) из одного столбца и 120000 строк, и столбец назван как «значение». Однако я хочу добавить еще один столбец для используемого значения итератора i. Например, столбец может называться «значение итератора» и должен содержать такие значения, как 5, 10, 15,20 ... 60.

DF1 <- do.call(rbind, lapply(seq(5,60,5), function(i) setNames(data.frame(rlnorm(n=10000, log(i^2 / sqrt((i*j)^2 + i^2)), sqrt(log(1 + ((i*j)^2 / i^2))))), "value")))

1 Ответ

1 голос
/ 14 июля 2020

Вы можете попробовать:

DF1 <- do.call(rbind, lapply(seq(5,60,5), function(i) 
       data.frame(iterator = i, value = rlnorm(n=10000, 
       log(i^2 / sqrt((i*j)^2 + i^2)), sqrt(log(1 + ((i*j)^2 / i^2)))))))

Немного короче с map_df из purrr:

DF1 <- purrr::map_df(seq(5,60,5), function(i) 
           data.frame(iterator = i, value = rlnorm(n=10000, 
           log(i^2 / sqrt((i*j)^2 + i^2)), sqrt(log(1 + ((i*j)^2 / i^2))))))
...