小编fil*_*fig的帖子

Tidyverse、Rlang 和 tidyeval:Bang bang (!!) 在函数内部失败,但它似乎无需引用即可工作

我正在一个长数据库(full_database)上运行一个函数,该数据库有两个主要组,我需要在每个组的多个子集上执行各种线性模型。

然后,我将 R^2、调整后的 R^2 和 p.value 提取到数据框中,其中每一行对应于一次比较。由于有 30 种不同的情况,我有另一个小标题,其中列出了函数参数所在的所有可能性( possibility )。

原始函数的脚本是:

database_correlation <-  function(id, group) {

    require(dplyr)
    require(tidyr)
    require(rlang)

    id_name <- quo_name(id)
    id_var <- enquo(id)
    group_name <- quo_name(group)
    group_var <- enquo(group)

    corr_db <- full_database %>%
      filter(numid==!!id_name) %>%
      filter(major_group==!!group_name) %>%
      droplevels()

    correlation <- summary(lm(yvar~xvar, corr_db))

    id.x <- as.character(!!id_var) #Gives out an error: "invalid argument type"
    group.x <- as.character(!!group_var) #Gives out an error: "invalid argument type"
    r_squared <- correlation$r.squared
    r_squared_adj <- correlation$adj.r.squared
    p_value <- correlation$coefficients[2,4]

    data.frame(id.x, group.x, r_squared, r_squared_adj, …
Run Code Online (Sandbox Code Playgroud)

r tidyr tidyeval rlang

5
推荐指数
1
解决办法
906
查看次数

为什么 grepl 可以工作,但 str_detect 不能根据行值进行 mutate?

我一直在努力解决这个问题。

\n

我需要根据检测数据库中另一个“错误”列的特定评论来创建一个更正的列。我可以使用 grepl 解决这个问题,但我也很难让 str_detect 正常工作(对于大数据集来说,它通常更快)。

\n

这是一个示例数据库:

\n
test <- tibble(\n  id = seq(1:30),\n  date = sample(seq(as.Date('2000/01/01'), as.Date('2018/01/01'), by="day"), 30),\n  error = c(rep(NA, 3), "wrong date! Correct date = 01.03.2022",\n            rep(NA, 5), "wrong date! Correct date = 01.05.2021",\n            rep(NA, 5), "wrong date! Correct date = 01.03.2022",\n            rep(NA, 7), "wrong date! Correct date = 01.05.2021",\n            rep(NA, 2), "date already corrected on 01.05.2021",\n            NA, "date already corrected on 01.03.2022", NA))\n
Run Code Online (Sandbox Code Playgroud)\n

我首先尝试使用 str_detect 创建一个新的“date_corr”列:

\n
test %>%\n  mutate(date_corr=if_else(str_detect(error, "date \\\\= …
Run Code Online (Sandbox Code Playgroud)

r stringr grepl

2
推荐指数
1
解决办法
39
查看次数

标签 统计

r ×2

grepl ×1

rlang ×1

stringr ×1

tidyeval ×1

tidyr ×1