Написание вида цикла for с использованием dplyr в R - PullRequest
0 голосов
/ 04 декабря 2018

Есть ли возможность использовать вид цикла for в синтаксисе dplyr?Я использую следующий синтаксис для проверки наличия MAP <99, MAP <98 и так далее, пока MAP <1.Не очень эффективно, поэтому мне нравится повторять эту функцию из MAP <[100: 1]. </p>

duur2_vs_diepte <- data_blood_pressure %>%
  summarise(
    duur_tm99_2 = (sum(MAP<=99))^2,
    duur_tm98_2 = (sum(MAP<=98))^2,
    duur_tm97_2 = (sum(MAP<=97))^2,
    .......
    duur_tm4_2 = (sum(MAP<=4))^2,
    duur_tm3_2 = (sum(MAP<=3))^2,
    duur_tm2_2 = (sum(MAP<=2))^2,
    duur_tm1_2 = (sum(MAP<=1))^2
  )

1 Ответ

0 голосов
/ 04 декабря 2018

Это может работать для вас:

# a helping function to create each column
create_columns <- function(x, mat) {
  dt <- mat %>%
    filter(MAP <= x) %>%
    summarise(sum(MAP, na.rm = TRUE)^2)

  names(dt) <- paste0("duur_tm", x, "_2")

  dt
}

# get all results together
bind_cols(lapply(100:1, create_columns, data_blood_pressure))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...