我遇到的问题是数据集重叠因子水平。
我想按因子水平生成时间表,条形图和统计数据 - 但是,我希望因子水平是模棱两可的。 这意味着属于多个级别的观测值应在图中多次出现。
以下是我的数据结构的示例:
head <- c("ID","YEAR","BRAZIL","GERMANY","US","FRANCE")
data <- data.frame(matrix(c(1,2000,1,0,0,0,
2,2010,0,1,1,0,
3,2011,0,1,0,0,
4,2012,1,0,0,1,
5,2012,0,1,0,0,
6,2013,0,0,0,1),
nrow=6, ncol=6, byrow=T))
names(data) <- head
很明显,无法以通常的方式创建可能的因子变量"COUNTRY"
。这将迫使因子水平明确(在我们的案例中将有4个级别:巴西,德国,美国和法国):
data$COUNTRY[data$BRAZIL==1 &
data$GERMANY==0 &
data$US==0 &
data$FRANCE==0] <- "Brazil"
data$COUNTRY[data$BRAZIL==0 &
data$GERMANY==1 &
data$US==0 &
data$FRANCE==0] <- "Germany"
等...
factor(data$COUNTRY)
但这不是我想要的......
我的问题是按因子绘制只有在因子水平明确无误的情况下才有效。 我想生产这样的东西:
require(ggplot2)
MYPLOT <- qplot(data$YEAR, data$COUNTRY)
MYPLOT + geom_point(aes(size=..count..), stat="bin") + scale_size(range=c(0, 15))
属于 i 因子水平的观测值在图中出现 i 次。
想法有人吗?
答案 0 :(得分:1)
我认为你必须复制这些行来代表每个观察。并删除任何0。
library(reshape2)
d2<-melt(data, id.var=c("ID","YEAR"))
d3<-d2[d2$value!=0,]
library(ggplot2)
qplot(d3$YEAR, d3$variable)