我是R新手,在RStudio中处理数据帧'damageData‘。数据框架的简要摘要:
>str(damageData)
'data.frame': 902297 obs. of 9 variables:
$ EVTYPE : Factor w/ 985 levels " HIGH SURF ADVISORY",..: 834 834 834 834 834 834 834 834 834 834 ...
$ FATALITIES: num 0 0 0 0 0 0 0 0 1 0 ...
$ INJURIES : num 15 0 2 2 2 6 1 0 14 0 ...
$ PROPDMG : num 25 2.5 25 2.5 2.5 2.5 2.5 2.5 25 25 ...
$ PROPDMGEXP: num 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ...
$ CROPDMG : num 0 0 0 0 0 0 0 0 0 0 ...
$ CROPDMGEXP: num 0 0 0 0 0 0 0 0 0 0 ...
$ Property : num 25000 2500 25000 2500 2500 2500 2500 2500 25000 25000 ...
$ Crops : num 0 0 0 0 0 0 0 0 0 0 ...
> head(damageData, 10)
EVTYPE FATALITIES INJURIES PROPDMG PROPDMGEXP CROPDMG CROPDMGEXP
1 TORNADO 0 15 25.0 1000 0 0
2 TORNADO 0 0 2.5 1000 0 0
3 TORNADO 0 2 25.0 1000 0 0
4 TORNADO 0 2 2.5 1000 0 0
5 TORNADO 0 2 2.5 1000 0 0
6 TORNADO 0 6 2.5 1000 0 0
7 TORNADO 0 1 2.5 1000 0 0
8 TORNADO 0 0 2.5 1000 0 0
9 TORNADO 1 14 25.0 1000 0 0
10 TORNADO 0 0 25.0 1000 0 0
Property Crops
1 25000 0
2 2500 0
3 25000 0
4 2500 0
5 2500 0
6 2500 0
7 2500 0
8 2500 0
9 25000 0
10 25000 0我想按EVTYPE对数据框进行分组。当我使用dplyr包和'group_by( EVTYPE )‘后跟summarize(TotalInjuries=sum(伤害),TotalFatalities=sum(死亡))时,数据帧没有按EVTYPE分组。相反,我得到了以下结果:
TotalInjuries TotalFatalities 1 140528 15145
我尝试将EVTYPE从“factor”更改为“character”,但仍然得到相同的结果。请帮我解决这个问题!
发布于 2015-03-20 13:38:33
如果没有一个可重复的例子,就很难确切地说出发生了什么。您可能错误地使用了dplyr语法?如下所示:
damageData <- data.frame(
EVTYPE = factor(c("Y","N","Y","N","Y","N","Y","N","Y","N")),
FATALITIES = c(0,0,0,0,0,0,0,0,1,0),
INJURIES = c(15,0,2,2,2,6,1,0,14,0))
str(damageData)
library(dplyr)
damageData %>%
group_by( EVTYPE ) %>%
summarize( TotalInjuries=sum(INJURIES),
TotalFatalities=sum(FATALITIES))我得到了以下信息
Source: local data frame [2 x 3]
EVTYPE TotalInjuries TotalFatalities
1 N 8 0
2 Y 34 1 https://stackoverflow.com/questions/29159701
复制相似问题