r - dplyr group_by 逻辑值

标签 r dplyr

我试图用一些语句来简化它。不知道如何去做(或者如果我可以),但任何人都可以让我接近或尽可能少的步骤。我正在使用 dplyr 和 lubridate。我有一个名为 OutofRange(示例)的数据库;

OutOfRange %>% select(OutRange, TouchVPOC)  
Source: local data frame [341 x 2]

   OutRange TouchVPOC

  (lgl)     (lgl)  

1     FALSE      TRUE  
2     FALSE     FALSE  
3     FALSE      TRUE  
4     FALSE     FALSE  
5     FALSE      TRUE

OutOfRange %>% select(OutRange, TouchVPOC) %>% filter(OutRange == T) %>% tally  
Source: local data frame [1 x 1]

      n  (int)  
1    37

OutOfRange %>% select(OutRange, TouchVPOC) %>% filter(OutRange == T, TouchVPOC == T) %>% tally  
Source: local data frame [1 x 1]

      n  (int)  
1    15

15/37  
[1] 0.4054054

因此,如果可能的话,我正在寻找类似这样的最终结果,其中 CountofDataFrame 是所有行的计数;其中 OutRange 和 TouchVPOC 是 TRUE 值的计数;且 Pct = TouchVPOC/OutRange。

CountOfDataFrame OutRange   TouchVPOC    Pct
             341       37          15    .40

我确实意识到,我可能会问很多..而且我对此很陌生,欢迎任何建议。只是寻找正确方向的基础或起点。

最佳答案

我建议您首先将数据转换为整齐的格式,然后使用 group_by/summarize/mutate 进行聚合和百分比计算,如下所示。

a <- data.frame(OutRange = c(TRUE, FALSE, FALSE, FALSE, FALSE), 
           TouchVPOC = c(TRUE, TRUE, TRUE, FALSE, FALSE))

> a
  OutRange TouchVPOC
1     TRUE      TRUE
2    FALSE      TRUE
3    FALSE      TRUE
4    FALSE     FALSE
5    FALSE     FALSE

library(tidyr)
a %>% 
  gather(type, value, OutRange:TouchVPOC) %>%
  group_by(type) %>%
  summarize(true_count = sum(value)) %>%
  mutate(total = sum(true_count), Pct = true_count / total)

Source: local data frame [2 x 4]

       type true_count total   Pct
      (chr)      (int) (int) (dbl)
1  OutRange          1     4  0.25
2 TouchVPOC          3     4  0.75

关于r - dplyr group_by 逻辑值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36004698/

相关文章:

r - 如何解释 dplyr 消息 `summarise()` 通过 'x' 重新分组输出(用 `.groups` 参数覆盖)?

r - 文件上传后 Shiny 的 dplyr 过滤器不起作用

r - 如果在dplyr下的前一行中满足条件,如何更改行中的值

r - ggplot2:如何获得回归线方程的值,r^2 和 p 值?

r - : polygon edge not found疑难解答

r - 按总数排序堆积条形图

r - dplyr 0.8.0 mutate_at : use of custom function without overwriting original columns

r - 将列引用写入 group_by 的函数

r - 根据 "group"大小更改矢量的编号

r - kNN - r 中有很多关系