1

I am working on a two-way repeated measure anova using the rstatix package.

library(rstatix)

res.aov <- anova_test(data=kolding, dv=count, wid=id, within=treatment)
get_anova_table(res.aov)

And here's how the data looks like:

    id treatment           species count
1   K1    biohut  Goldsinny Wrasse     0
2   K2    biohut  Goldsinny Wrasse     2
3   K3    biohut  Goldsinny Wrasse     1
4   K4    biohut  Goldsinny Wrasse     1
5   K5    biohut  Goldsinny Wrasse     1
6   K6    biohut  Goldsinny Wrasse     0
7   K1    biohut      Atlantic Cod     0
8   K2    biohut      Atlantic Cod     0
9   K3    biohut      Atlantic Cod     1
10  K4    biohut      Atlantic Cod     1
11  K5    biohut      Atlantic Cod     0
...

I keep getting a spread error that each row of output must be identified by a unique combination of keys, and I don't know how to go about it.

I tried pivot_wider(), but it wouldn't budge.

zephryl
  • 14,633
  • 3
  • 11
  • 30
  • Please provide enough code so others can better understand or reproduce the problem. – Community Mar 09 '23 at 12:31
  • So take this subset of data you posted here and try to reproduce your own error. Cant? How you expect anyone else to help you? – procerus Mar 09 '23 at 13:25

1 Answers1

0

The problem is that your id variable is reused for different individuals — ie, you have K1, K2, etc, for both goldsinny wrasse and Atlantic cod. You can make a unique identifier by paste()ing id and species.

library(rstatix)

kolding$unique_id <- paste(kolding$id, kolding$species)

res.aov <- anova_test(data=kolding, dv=count, wid=unique_id, within=treatment)
get_anova_table(res.aov)
ANOVA Table (type III tests)

     Effect DFn DFd    F     p p<.05   ges
1 treatment   1  10 0.45 0.518       0.034

Example data:

OP’s sample data initially threw an error because it only includes one level of treatment, so I added another level:

set.seed(13)

kolding <- rbind(
  kolding, 
  transform(
    kolding, 
    treatment = "control", 
    count = sample(0:2, 11, replace = TRUE)
  )
)
zephryl
  • 14,633
  • 3
  • 11
  • 30