参数意味着行数不同:处理ddply时为1,0

时间:2017-03-24 12:10:18

标签: r

我正在尝试使用ggplot生成一个cdf图,并在线查看了一些示例。但是,当我尝试复制它时,我收到以下错误:

“参数意味着行数不同:1,0”

我进行了搜索,似乎从我收集的nrows!= ncol,这对于data.frame不起作用。我有点困惑,因为我的MCtab数据帧类似。

如果有人能解释出了什么问题,或者我误解了什么会很棒?代码如下所示。

library (triangle)
library(ggplot2)

n = 1000
W1 = rtriangle(n,330,400)
W2 = rtriangle(n,300,420)
SO = rtriangle(n,0.2,0.3)

MCtab <- data.frame(W1,W2,SO)

set.seed(1)
for (n in 1:n) {
  N0 <- (W1 + W2 + SO )}

set.seed(1)
for (n in 1:n) {
  N1 <- ((0.99*W1 + 0.99*W2 + 0.99*SO ))}  

set.seed(1)
for (n in 1:n) {
  N2 <- ((0.98*W1 + 0.98*W2 + 0.98*SO))} 

ggdata <- data.frame(N0,N1,N2)


ggdata <- ddply(ggdata, .(N0,N1,N2), transform, ecd=ecdf)


cdf <- ggplot(ggdata, aes(x=value)) + stat_ecdf(aes(colour=N0,N1,N2))
cdf

1 个答案:

答案 0 :(得分:1)

使用以下代码解决了这个问题:

ggdata <- data.frame(N0,N1,N2)
ggdata<- melt(ggdata)
ggdata <- ddply(ggdata, .(variable), transform, ecd=ecdf(value)(value))
cdf <- ggplot(ggdata, aes(x=value)) + stat_ecdf(aes(colour=variable))
cdf