【问题标题】:Replace values in Tidy Table替换整洁表中的值
【发布时间】:2018-11-03 16:31:57
【问题描述】:

我有一张包含计数数据的表:我试图用一个来删除所有非零值。

这是我尝试过的:

div.summary<- raw.data %>% select (Site, 5:55) %>% 
  group_by(Site) %>% summarise_all(sum) %>%  mutate_if(replace(2:52, >0, 1))

【问题讨论】:

  • div.summary&lt;- raw.data %&gt;% select (Site, 5:55) %&gt;% group_by(Site) %&gt;% summarise_all(sum) %&gt;% div.summary[div.summary &gt;0] &lt;- 1

标签: r tidyverse tidyr dplyr


【解决方案1】:

试试:

div.summary<- raw.data %>% 
  select (Site, 5:55) %>% 
  group_by(Site) %>% 
  summarise_all(sum) %>%  
  mutate_at(vars(2:52),
            funs(if_else(. == 0, 1, .)))

【讨论】:

    【解决方案2】:
    library(dplyr)
    
    raw.data %>% 
      select (Site, 5:55) %>%
      mutate(across(!Site, ~+as.logical(.x)))
    
    

    toy_data 演示

    set.seed(1)
    raw.data <- data.frame(Site = LETTERS[1:26],
                           col1 = sample(0:3, 26, T),
                           col2 = sample(0:2, 26, T),
                           col3 = sample(0:3, 26, T))
    raw.data
    #>    Site col1 col2 col3
    #> 1     A    0    1    1
    #> 2     B    3    0    1
    #> 3     C    2    0    3
    #> 4     D    0    1    3
    #> 5     E    1    1    1
    #> 6     F    0    1    1
    #> 7     G    2    0    0
    #> 8     H    2    2    1
    #> 9     I    1    0    1
    #> 10    J    1    2    1
    #> 11    K    2    1    1
    #> 12    L    2    1    0
    #> 13    M    0    1    2
    #> 14    N    0    1    2
    #> 15    O    0    2    3
    #> 16    P    1    1    1
    #> 17    Q    1    0    2
    #> 18    R    1    2    2
    #> 19    S    1    1    3
    #> 20    T    2    0    1
    #> 21    U    0    0    3
    #> 22    V    2    2    2
    #> 23    W    0    1    2
    #> 24    X    0    1    0
    #> 25    Y    0    2    3
    #> 26    Z    0    2    0
    library(dplyr)
    
    raw.data %>%
      mutate(across(!Site, ~+as.logical(.x)))
    
    #>    Site col1 col2 col3
    #> 1     A    0    1    1
    #> 2     B    1    0    1
    #> 3     C    1    0    1
    #> 4     D    0    1    1
    #> 5     E    1    1    1
    #> 6     F    0    1    1
    #> 7     G    1    0    0
    #> 8     H    1    1    1
    #> 9     I    1    0    1
    #> 10    J    1    1    1
    #> 11    K    1    1    1
    #> 12    L    1    1    0
    #> 13    M    0    1    1
    #> 14    N    0    1    1
    #> 15    O    0    1    1
    #> 16    P    1    1    1
    #> 17    Q    1    0    1
    #> 18    R    1    1    1
    #> 19    S    1    1    1
    #> 20    T    1    0    1
    #> 21    U    0    0    1
    #> 22    V    1    1    1
    #> 23    W    0    1    1
    #> 24    X    0    1    0
    #> 25    Y    0    1    1
    #> 26    Z    0    1    0
    

    reprex package (v2.0.0) 于 2021 年 5 月 30 日创建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-06
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      • 2017-12-02
      • 2014-09-28
      相关资源
      最近更新 更多