2017-09-03 84 views
0

我想绘制可分为2组(Tornado和TSTM WIND)的数据。我的数据是这样的:绘制组中的数据

enter image description here

现在我想创建一个死亡的每个EVTYPE总和简单的图表。所以就(在这种情况下30),龙卷风一个值和一个值TSTM WIND(20)

我试过,但它那倒工作,因为我似乎有不同的尺寸参数

xcv<-aggregate(E0, by = list(Fatalities), FUN = sum, na.rm = TRUE) 
plot(Fatalities) 

任何人都可以帮助我吗?

回答

2

你可以使用data.table或dplyr软件包很容易地做到这一点。简单的例子如下。

如果你想使阴谋更好,我会建议看看ggplot。

# create example data frame: 

df <- data.frame(EVTYPE = c("Tornado","TSTM Wind","Tornado","TSTM Wind"), Fatalities = c(1,3,4,6)) 

# use data.table 
library(data.table) 

df <- data.table(df) 
df[,sum(Fatalities), keyby = EVTYPE] 

plot(df[,sum(Fatalities), keyby = EVTYPE]) 

# with dplyr 

df %>% group_by(EVTYPE) %>% summarise(sum = sum(Fatalities)) %>% plot() 
2

最简单的方法是在同一时间通过利用ggplot总结为绘制:

require(ggplot2) 

ggplot(df, aes(x = EVTYPE, y = FATALITIES, fill = EVTYPE)) + 
    geom_bar(stat = "identity") + 
    xlab("Event Type") + 
    ylab("Fatalities") + 
    guides(fill=FALSE) 

输出:

enter image description here

样本数据:

df <- data.frame(
    EVTYPE=c("Tornado","TSTM Wind","TSTM Wind","Tornado","TSTM Wind", 
      "Tornado","TSTM Wind","TSTM Wind","Tornado","Tornado"), 
    FATALITIES=c(5,11,2,1,1,2,3,3,1,21) 
)