小编Lir*_*iri的帖子

如何使用矢量长度不一致的 purrr::map2()

我想根据 4 个不同的列生成汇总统计信息。不同的汇总统计基于标签列(具有两个值)和不同的组列(组 1、2 和 3)计算。因此,您将获得 Label1*group1、Label1*group2 等的不同 tbl。

set.seed(123)
tbl <- tibble(
       label  = rep(c("Label1", "Label2"), 6),
       group1  = rep(c("a", "b", "c", "d"), 3),
       group2  = rep(c("x", "y","z"), 4),
       group3  = rep(c("1", "1", "2", "2", "3", "3"), 2),
       value1 = rnorm(12, 100, 10),
       value2 = rnorm(12, 50, 5)
)

tbl
Run Code Online (Sandbox Code Playgroud)

我制作了一个示例函数,我希望该函数使用两个向量作为.x.y参数。

tmp_label <- c("Label1", "Label2") # .x
group <- c("group1", "group2", "group3") # .y

# .f
tmp_function <- function(Label, group) {

  tbl %>% 
    filter(label %in% …
Run Code Online (Sandbox Code Playgroud)

iteration r purrr

4
推荐指数
1
解决办法
833
查看次数

如何使用 case_when 和 mutate_all 插入变量值

我有一个看似很小的问题。mutate_all()我想与 结合使用case_when()。示例数据框:

tbl <- tibble( 
  x = c(0, 1, 2, 3, NA),
  y = c(0, 1, NA, 2, 3),
  z = c(0, NA, 1, 2, 3),
  date = rep(today(), 5)
)
Run Code Online (Sandbox Code Playgroud)

我首先使用以下代码制作了另一个数据框,将所有 NA 替换为 0,将值替换为 1。

tbl %>%
 mutate_all(
    funs(
      case_when(
        . %>% is.na() ~ 0,
        TRUE ~ 1
      )))
Run Code Online (Sandbox Code Playgroud)

现在我想用空白替换 NA 值("",并保留其他值不变。但是,我不知道如何以保留列值的方式设置 TRUE 值。

任何建议将不胜感激!

r case-when dplyr

3
推荐指数
1
解决办法
2475
查看次数

通过在 R 中组合 mutate 和 case_when 创建新变量

我有针对不同用户的应用程序交互数据集。应用交互保存为用户在特定周内与该功能交互的天数。示例表看起来像(出于实用目的注释掉 ID 和 weeknr):

tibble(
  #id     = (1, 1, 1), 
  #weeknr = (1, 2, 3), 
  var_1  = c(1, 2, 3, 2, 1),
  var_2  = c(0, 0, 1, 4, 0),
  var_3  = c(1, 1, 1, 0, 0)
)
Run Code Online (Sandbox Code Playgroud)

现在的目标是基于var_{1|3}. 如果应用交互计数 > 1,则分配 1,否则分配 0。我尝试了以下操作但没有成功:

tibble(
  var_1 = c(1, 2, 3, 2, 1),
  var_2 = c(0, 0, 1, 4, 0),
  var_3 = c(1, 1, 1, 0, 0)
) %>% 
  mutate_all(
    funs(case_when(
      . > 0 ~ 1, 
      . == 0 ~ …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyverse

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

标签 统计

r ×3

dplyr ×2

case-when ×1

iteration ×1

purrr ×1

tidyverse ×1