【问题标题】:create percentage and ratio in r在 r 中创建百分比和比率
【发布时间】:2017-05-30 16:13:49
【问题描述】:

我的原始数据集是

group value
a     na
b     1
c     1
c     3
d     2
d     3

我想要一个包含两个新变量的新数据集 - 百分比和比率

group value percent(%) ratio
a     na    na      na
b     1     0       0
c     1     200     3
d     2     50       3/2 =1.5

我可以使用 dplyr 包解决问题吗?

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    是的,你可以。在以下示例中,dt4 是最终输出。

    library(dplyr)
    
    dt <- data_frame(group = c("a", "b", "c", "c", "d", "d"),
                     value = c(NA, 1, 1, 3, 2, 3))
    
    dt2 <- dt %>%
      group_by(group) %>%
      filter(n() == 2) %>%
      summarise(Value = first(value),
                `percent(%)` = (last(value) - first(value))/first(value) * 100, 
                ratio = last(value)/first(value)) %>%
      rename(value = Value)
    
    dt3 <- dt %>%
      group_by(group) %>%
      filter(n() == 1) %>%
      mutate(`percent(%)` = ifelse(is.na(value), NA, 0),
             ratio = ifelse(is.na(value), NA, 0))
    
    dt4 <- dt2 %>%
      bind_rows(dt3) %>%
      arrange(group)
    

    【讨论】:

      猜你喜欢
      • 2018-12-13
      • 2022-12-09
      • 2016-03-14
      • 2012-10-31
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      • 2020-08-03
      相关资源
      最近更新 更多