在负面选择数据框后,如何在R中获取摘要统计信息

Mar*_*ark 5 r dataframe dplyr

我想否定(除了因子变量的每个级别的给定行值之外的所有值)并总结剩余的数据.举个简单的例子,我有一个带有两列的数据框DF.

>DF
Category      Value  
A               5  
B               2  
C               3  
A               1  
C               1
Run Code Online (Sandbox Code Playgroud)

如果dplyr可以否定选择它会看起来像这样(可以吗?).

> DF %>% group_by(!Category) %>% summarise(avg = mean(Value))
!Category    avg
A            2.00               #average of all rows where category isn't A
B            2.50
C            2.67
Run Code Online (Sandbox Code Playgroud)

bou*_*all 5

这是你可以在基地做的一种方式R:

编辑:感谢您建议可扩展的更改@Ryan

> sapply(levels(DF$Category), FUN = function(x) mean(subset(DF, Category != x)$Value))

       A        B        C 
2.000000 2.500000 2.666667 
Run Code Online (Sandbox Code Playgroud)

  • 我会用`levels(DF $ Category)`替换`c('A','B','C')`. (2认同)