I've a dataset looking like this:

> print(mydata) col1 col2 col3 1 0.819 0.851 0.874 2 0.972 0.703 0.821 3 0.891 0.790 0.951 4 0.839 0.799 0.819 

I would like to know if there are significant differences between the three groups col1, col2 and col3. For this matter, my guess is that the best way is to run an anova test.

Please find below the script I used to produce the dataset, to run the test and the Error displayed by R:

 > mydata <- data.frame(col1, col2, col3) > accuracymetrics <- as.vector(mydata) > anova(accuracymetrics) 

Error in UseMethod("anova") : no applicable method for 'anova' applied to an object of class "data.frame"

It's the first time I'm running such an analysis in R so bear with me if this question is not interesting for the forum. Any input to solve this error is appreciated!

4

1 Answer

if I understood you correctly the three groups you are talking about are the three columns in your data. If this is the case you need to do two things:

First, reshape your data from wide to long format such that it looks like this

group | value ------------ grp1 | 0.819 grp1 | 0.972 

This can easily be done with the tidyr package

library(tidyr) longdata <- gather(mydata, group, value) 

Second: you have to use aov instead of anova:

res.aov <- aov(value ~ group, data = longdata) summary(res.aov) 

Here you can find even more details. Hope this helps.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.