On Aug 21, 2012, at 5:48 AM, Thomas wrote:

I'm trying to enter a frequency table manually so that I can run a goodness of fit test (I only have the frequencies, I don't have the raw data).

So for example, let's say I want to re-create the HorseKicks table:

library(vcd)

data(HorseKicks)
str(HorseKicks)

'table' int [1:5(1d)] 109 65 22 3 1
- attr(*, "dimnames")=List of 1
 ..$ nDeaths: chr [1:5] "0" "1" "2" "3" ...

I tried this the following but it didn't work:

vex <- matrix(c(0,109,1,65,2,22,3,3,4,1), nrow=2, ncol=5)
vec <- as.table(vex)
str(vec)

table [1:2, 1:5] 0 109 1 65 2 22 3 3 4 1
- attr(*, "dimnames")=List of 2
 ..$ : chr [1:2] "A" "B"
 ..$ : chr [1:5] "A" "B" "C" "D" ...

I also tried:

vex <- c(109,65,22,3,1)
vec <- as.table(vex)
str(vec)

table [1:5(1d)] 109 65 22 3 1
- attr(*, "dimnames")=List of 1
 ..$ : chr [1:5] "A" "B" "C" "D" ...

goodfit(HorseKicks) works fine
goodfit(vec) does not

You needed a two _column_ matrix with the frequencies in the _first_ column, rather than a two-row matrix with frequencies in the second row:

> vcd::goodfit( t(vex)[ , 2:1]) # transpose to column oriented and swap columns

Observed and fitted values for poisson distribution
with parameters estimated by `ML'

 count observed      fitted
     0      109 108.6701738
     1       65  66.2888060
     2       22  20.2180858
     3        3   4.1110108
     4        1   0.6269291



--

David Winsemius, MD
Alameda, CA, USA

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to