1

Rについて簡単な質問があります。ファイルから取得しているいくつかのデータから階層化されたヒストグラムを作成しようとしていますが、ggplotを機能させるのに苦労しています。私はこのエラーを繰り返し発生し、答えを探していましたが、あまり見ていません。

    Error: ggplot2 doesn't know how to deal with data of class uneval
    Execution halted

これまでの私のプログラムを簡単に見てみましょう。

library("ggplot2")
ex <- '/home/Data/run1.DOC'
ex2 <- '/home/Data/run2.DOC'
...   
ex<- read.table(ex,header=TRUE)
ex2<- read.table(ex2,header=TRUE)
...
colnames(ex) <- c(1:18)
colnames(ex2) <- c(1:18)
...
Ex <- c(ex$'14')
Ex2 <- c(ex2$'14')
...
ggplot()+
geom_histogram(data = Ex, fill = "red", alpha = 0.2) +
    geom_histogram(data = Ex2, fill = "blue", alpha = 0.2) 

そして、私のデータはファイルにあり、次のようになります。

head(ex,10)
        1     2      3     4      5  6   7   8     9  10    11    12
    1  1:28   400   0.42   400   0.42  1   1   2  41.8   0   0.0   0.0
    2  1:96  5599  39.99  5599  39.99 34  42  50 100.0 100 100.0 100.0
    3  1:53   334   0.63   334   0.63  1   2   2  62.1   0   0.0   0.0
    4  1:27  6932  49.51  6932  49.51 48  52  57 100.0 100 100.0 100.0
    5  1:36 27562 124.15 27562 124.15 97 123 157 100.0 100 100.0 100.0
    6  1:14  2340  16.71  2340  16.71 13  17  21 100.0 100 100.0  95.7
    7  1:96  8202  49.71  8202  49.71 23  43  80 100.0 100 100.0 100.0
    8  1:34  3950  28.21  3950  28.21 22  33  36 100.0 100 100.0 100.0
    9  1:60  5563  24.62  5563  24.62 11  24  41 100.0 100  96.5  75.2
    10 1:06  1646   8.11  1646   8.11  7   8  13 100.0 100  87.2  32.0
          13    14    15    16   17   18
    1    0.0   0.0   0.0   0.0  0.0  0.0
    2   93.6  82.9  57.9  24.3  0.0  0.0
    3    0.0   0.0   0.0   0.0  0.0  0.0
    4  100.0  97.1  87.1  57.1  0.0  0.0
    5  100.0 100.0 100.0 100.0 88.3 71.2
    6   40.0   0.0   0.0   0.0  0.0  0.0
    7   81.2  66.7  54.5  47.9 29.1  0.0
    8   76.4  55.7   0.0   0.0  0.0  0.0
    9   57.5  35.4  26.5   4.4  0.0  0.0
    10   0.0   0.0   0.0   0.0  0.0  0.0

しかし、はるかに大きい。これは、exとex2が0から100までのパーセンテージになることを意味します。colnames行は%_above_30のような列見出しをRが好むものに変更するので、各列名に番号を付けるように変更します。

私は実際にそれを取得していないので、誰かがここで問題を知っている/見ていますか?ありがとう!!

4

1 に答える 1

4

たぶん、2つのデータフレームを1つに組み合わせて、それを1つに供給してみてくださいgeom_histogram

#maybe reshape it something like this (base reshape or the 
#reshape package may be a better tool)
dat <- data.frame(rbind(ex, ex2), 
    colvar=factor(c(rep("ex", nrow(ex)), rep("ex2", nrow(ex2))))

ggplot(data = dat, fill = colvar)+
    geom_histogram(position="identity", alpha = 0.2)

コードは再現可能ではないため、これはテストされていません(再現可能な例を作成する方法については、このリンクを参照してください)。

これが私が再現可能な例で話しているアイデアです:

library(ggplot2) 
path = "http://www-stat.stanford.edu/~tibs/ElemStatLearn/datasets/SAheart.data" 

saheart <- read.table(path, sep=",",head=T,row.names=1) 
fmla <- "chd ~ sbp + tobacco + ldl + adiposity + famhist + typea + obesity" 
model <- glm(fmla, data=saheart, family=binomial(link="logit"), 
    na.action=na.exclude) 
dframe <- data.frame(chd=as.factor(saheart$chd), 
    prediction=predict(model, type="response")) 

ggplot(dframe, aes(x=prediction, fill=chd)) + 
    geom_histogram(position="identity", binwidth=0.05, alpha=0.5) 
于 2012-07-30T18:12:20.090 に答える