简体   繁体   English

在 R 中使用 dplyr 编写一种 for 循环

[英]Writing kind of for-loop using dplyr in R

Is there a possibility to use a kind of for loop inside a dplyr syntax?是否有可能在 dplyr 语法中使用一种 for 循环? I'm using the following syntax to check the presence of MAP<99, MAP<98 and so on until MAP<1.我正在使用以下语法检查 MAP<99、MAP<98 等的存在,直到 MAP<1。 Not very efficient, so I like to repeat this function from MAP< [100:1].效率不高,所以我喜欢从 MAP< [100:1] 重复这个函数。

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
  )

This may work for you:这可能对您有用:

# 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))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM