绘制R中1个观测值的83个变量
我有一个包含131个观察值的数据框架,每个数据框架包含83个变量(不同年份有不同犯罪记录的村庄——暴力、偷车等)。我需要选择一个观察(一个村庄)和针对不同年份的特定变量(例如暴力犯罪计数) 我已通过以下方式对该村庄进行了分组:绘制R中1个观测值的83个变量,r,subset,R,Subset,我有一个包含131个观察值的数据框架,每个数据框架包含83个变量(不同年份有不同犯罪记录的村庄——暴力、偷车等)。我需要选择一个观察(一个村庄)和针对不同年份的特定变量(例如暴力犯罪计数) 我已通过以下方式对该村庄进行了分组: my_data<- data[which(data$WardName =='village_name'), ] my_data我会首先将数据重新格式化为长格式,即为村庄,犯罪,年份,和计数列。然后,您可以很容易地根据这些变量对数据进行子集划分 对于包restra
my_data<- data[which(data$WardName =='village_name'), ]
my_data我会首先将数据重新格式化为长格式,即为村庄
,犯罪
,年份
,和计数
列。然后,您可以很容易地根据这些变量对数据进行子集划分
对于包restrape2
或tidyr
,这种类型的整形操作非常简单
这里有一个例子
首先,我们创建一些(我认为)与您的数据格式匹配的假数据:
d <- data.frame(Village=LETTERS[1:5],
Vehicle.Crime.Count.2008.2009=rpois(5, 20),
Vehicle.Crime.Count.2009.2010=rpois(5, 20),
Vehicle.Crime.Count.2010.2011=rpois(5, 20),
Vehicle.Crime.Count.2011.2012=rpois(5, 20),
Violent.Crime.Count.2008.2009=rpois(5, 20),
Violent.Crime.Count.2009.2010=rpois(5, 20),
Violent.Crime.Count.2010.2011=rpois(5, 20),
Violent.Crime.Count.2011.2012=rpois(5, 20))
将数据重塑为长格式:
d_long <- gather(d, key=Crime, value=Count, -Village) %>%
separate(Crime, c('Crime', 'Year'), '\\.Count\\.') %>%
mutate(Crime=factor(gsub('\\.', ' ', Crime)),
Year=factor(sub('\\.', '-', Year)))
我们现在可以将这些数据过滤到感兴趣的子集,并绘制它们:
filter(d_long,
Crime=='Vehicle Crime', Year %in% c('2008-2009', '2009-2010', '2010-2011')) %>%
ggplot(aes(x=Year, Count, group=Village, color=Village)) +
geom_line() +
theme_bw()
我会首先将数据重新格式化为长格式,即为村庄
、犯罪
、年份
和计数
列。然后,您可以很容易地根据这些变量对数据进行子集划分
对于包restrape2
或tidyr
,这种类型的整形操作非常简单
这里有一个例子
首先,我们创建一些(我认为)与您的数据格式匹配的假数据:
d <- data.frame(Village=LETTERS[1:5],
Vehicle.Crime.Count.2008.2009=rpois(5, 20),
Vehicle.Crime.Count.2009.2010=rpois(5, 20),
Vehicle.Crime.Count.2010.2011=rpois(5, 20),
Vehicle.Crime.Count.2011.2012=rpois(5, 20),
Violent.Crime.Count.2008.2009=rpois(5, 20),
Violent.Crime.Count.2009.2010=rpois(5, 20),
Violent.Crime.Count.2010.2011=rpois(5, 20),
Violent.Crime.Count.2011.2012=rpois(5, 20))
将数据重塑为长格式:
d_long <- gather(d, key=Crime, value=Count, -Village) %>%
separate(Crime, c('Crime', 'Year'), '\\.Count\\.') %>%
mutate(Crime=factor(gsub('\\.', ' ', Crime)),
Year=factor(sub('\\.', '-', Year)))
我们现在可以将这些数据过滤到感兴趣的子集,并绘制它们:
filter(d_long,
Crime=='Vehicle Crime', Year %in% c('2008-2009', '2009-2010', '2010-2011')) %>%
ggplot(aes(x=Year, Count, group=Village, color=Village)) +
geom_line() +
theme_bw()
谢谢,我要试一试。我应该重塑整个数据集(包括我不感兴趣的所有村庄)还是只重塑我想要的一个村庄?谢谢,我要试一试。我应该重塑整个数据集(包括我不感兴趣的所有村庄)还是只重塑我想要的一个村庄?