Lou*_*den 5 r dplyr purrr tidyverse tidyeval
我正在尝试生成具有重要恒星的相关矩阵。采取以下数据框:
df <- tibble(stub = c(1,2,3,4),
stub_pvalue = c(.00, .04, .07,.2))
Run Code Online (Sandbox Code Playgroud)
我想编写一个函数,如果stub_pvalue小于.01,则粘贴任何与“ ***”连接的列(例如本例中的stub),否则直接粘贴stub。就像是:
assign_stars <- function(var) {
if (paste0(var,"_pvalue") < .01) {
paste0(var, "***")
} else {
paste0(var)
}
}
df %>%
mutate(col_with_stars = map_chr(col, assign_stars))
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何在var +“ _pvalue”上评估if的第一个逻辑条件。有人可以帮忙吗?
您可能过度思考了这个问题,ifelse即矢量化函数,您可以使用它来执行动态更改。
df <- tibble(stub1 = c(1,2,3,4),
stub1_pvalue = c(.00, .04, .07,.2),
stub2 = c(1,2,3,4),
stub2_pvalue = c(.00,.00,.02,.2))
for(x in paste0("stub",seq(1:2))){
df[[paste0(x,"_with_star")]] <- ifelse(df[[paste0(x,"_pvalue")]]< .01, paste0(df[[x]],"***"),df[[x]])
}
df
# A tibble: 4 x 6
stub1 stub1_pvalue stub2 stub2_pvalue stub1_with_star stub2_with_star
<dbl> <dbl> <dbl> <dbl> <chr> <chr>
1 1 0 1 0 1*** 1***
2 2 0.04 2 0 2 2***
3 3 0.07 3 0.02 3 3
4 4 0.2 4 0.2 4 4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |