所以我有两组数据(长度不同)我试图分组并显示密度图:
dat <- data.frame(dens = c(nEXP,nCNT),lines = rep(c("Exp","Cont")))
ggplot(dat, aes(x = dens, group=lines, fill = lines)) + geom_density(alpha = .5)
当我运行代码时,会发出有关不同长度的错误,即 “参数意味着不同的行数:x,y”
然后我将代码扩充到:
dat <- data.frame(dens = c(nEXP,nCNT),lines = rep(c("Exp","Cont"),X))
其中X是较长参数的长度,因此“lines”的长度将与dens的长度相匹配。
现在的问题是,当我去绘制数据时,我只得到一个密度图....我知道应该有两个,因为用绘图/线绘制密度,显然是两个不相等的重叠分布,所以我假设错误是分组...
希望这是有道理的。
答案 0 :(得分:1)
所以我不确定为什么,但基本上我只需要手动执行rep()函数:
A<-data.frame(ExpN, key = "exp")
B<-data.frame(ConN,key = "con")
colnames(A) <- c("a","key")
colnames(B) <- c("a","key")
dat <- rbind(A,B)
ggplot(dat, aes(x = dens, fill = key)) + geom_density(alpha = .5)
答案 1 :(得分:0)
您需要告诉rep
重复每个元素多少次才能让它排成一行
dat <- data.frame(dens = c(nEXP,nCNT),
lines = rep(c("Exp","Cont"), c(length(nEXP),length(nCNT)))
这应该会为您提供dat
,您可以使用ggplot
来电。