【问题标题】:Using summarize_at to divide multiple columns by other column使用 summarise_at 将多列除以其他列
【发布时间】:2019-07-26 15:39:15
【问题描述】:

我希望将多个列除以另一个指定的列。代码的唯一相关部分发布在下面。

summarize_at(vars(starts_with('total')),list(~./count_short)) 

错误:“total_age”的长度必须为 1,而不是集合的长度。

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    问题是summarise/summarise_at 返回的长度为 1,但是当我们除以整列时,它的长度为 n()。因此,不要使用summarise_at,而是使用mutate_at 来修改列

    ...
     %>%
      mutate_at(vars(starts_with('total')),list(~./count_short))
    

    或者如果需要的话。创建新列,在 list 换行之后指定一个名称,该名称将以现有列作为后缀以创建新列

    ... %>%
       mutate_at(vars(starts_with('total')),list(value = ~./count_short))  
    

    【讨论】:

      猜你喜欢
      • 2021-08-10
      • 1970-01-01
      • 1970-01-01
      • 2018-02-03
      • 2015-03-23
      • 2021-08-12
      • 1970-01-01
      • 2021-11-14
      • 2021-08-12
      相关资源
      最近更新 更多