0

所以我有两组数据(不同长度),我试图将它们分组并显示密度图:

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 是较长参数的长度,因此“行”的长度将与 dens 的长度匹配。

现在的问题是,当我绘制数据时,我只得到一个密度图......我知道应该有两个,因为用图/线绘制密度显然是两个不相等的重叠分布,所以我假设错误与分组有关...

希望这是有道理的。

4

2 回答 2

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) 
于 2013-07-11T23:18:15.177 回答
0

您需要告诉rep每个元素重复多少次才能使其对齐

dat <- data.frame(dens = c(nEXP,nCNT),
                  lines = rep(c("Exp","Cont"), c(length(nEXP),length(nCNT)))

那应该给你一个dat你可以用你的ggplot电话。

于 2013-07-12T19:00:14.250 回答