[英]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.