初学者R:使用事件数据,创建一系列具有分类变量和的新数据帧

时间:2014-05-30 00:06:10

标签: r

我有一组遵循粗略格式的事件数据:

Incident #   Date   Year   State   Criminal Offense   Location   
发生155k起事件。我想创建一组新的数据帧,将我的未分组数据分组(即,与此链接的第一步相反:http://ww2.coastal.edu/kingw/statistics/R-tutorials/descriptive.html)。我希望数据框与每个年份/每个州的最后两列每个分类计数的总数,"进攻"和"位置" (但每年只有一行 - 州组合)所以它将是2个独立的数据帧:

Year   State   Sum of Criminal Offense 1   Sum of Criminal Offense 2   Sum of Crim 3

Year   State   Sum of Location 1   Sum of Location 2   Sum of Location 3

目标是对各州的事件计数进行比较,或对特定国家某种犯罪类型的总事件进行时间序列预测。我可以从未分组的数据中轻松完成这项工作吗?是否存在资源或一些简要规则,哪些分析/预测方法对于分组与未分组数据最有效/最实用?

1 个答案:

答案 0 :(得分:0)

以下是一种方法,使用table计算实体,reshape将其设置为所需的形式。

虚假数据:

d <- data.frame(Incident=1:4, Year=c(1,1,2,2), State=c('AL','MN','AL','MN'),Offense=c(1,1,1,2),Location=c(1,2,2,2))
d
##   Incident Year State Offense Location
## 1        1    1    AL       1        1
## 2        2    1    MN       1        2
## 3        3    2    AL       1        2
## 4        4    2    MN       2        2

位置:

dl <- as.data.frame(xtabs(~Year+State+Location, data=d))
# dl <- as.data.frame(table(Year=d$Year, State=d$State, Location=d$Location))

reshape(dl, direction='wide', timevar='Location', idvar=c('Year', 'State'))
##   Year State Freq.1 Freq.2
## 1    1    AL      1      0
## 2    2    AL      0      1
## 3    1    MN      0      1
## 4    2    MN      0      1

罪行:

do <- as.data.frame(xtabs(~Year+State+Offense, data=d))
# do <- as.data.frame(table(Year=d$Year, State=d$State, Offense=d$Offense))

reshape(do, direction='wide', timevar='Offense', idvar=c('Year', 'State'))
##   Year State Freq.1 Freq.2
## 1    1    AL      1      0
## 2    2    AL      1      0
## 3    1    MN      1      0
## 4    2    MN      0      1