Friedman test unreplicated complete block design error

后端 未结 6 1971
北海茫月
北海茫月 2021-01-18 15:16

I\'m having trouble running a Friedman test over my data. I\'m trying to run a Friedman test using this command:

friedman.test(mean ~ isi | expId, data=monoS         


        
相关标签:
6条回答
  • 2021-01-18 15:25

    I don't get an error if I run your dataset:

       Friedman rank sum test
    
       data:  mean and isi and expId
       Friedman chi-squared = 17.9143, df = 3, p-value = 0.0004581
    

    However, you have to make sure that expId and isi are coded as factors. Run these commands:

        monoSum$expID$<-factor(monoSum$expID)
        monoSum$isi$<-factor(monoSum$isi)
    

    Then run the test again. This has worked for me with a similar problem.

    0 讨论(0)
  • 2021-01-18 15:27

    I had this exact error too with my dataset. It turns out that the function friedman.test() accepts data frames (fx those created by data.frame() ) but not tibbles (those created by dplyr and other modern tools). The solution for me was to convert my dataset to a dataframe first.

    D_fri <- D_all %>% dplyr::select(FrustrationEpisode, Condition, Participant)
    D_fri <- as.data.frame(D_fri)
    str(D_fri) # confirm the object should now be a 'data.frame'
    friedman.test(FrustrationEpisode ~ Condition | Participant, D_fri)
    
    0 讨论(0)
  • 2021-01-18 15:28

    Using the function as.matrix() to transform my dataframe is the magic that got the function to run for me.

    0 讨论(0)
  • 2021-01-18 15:38

    Just thought I would mention I found this post because I was getting a similar error message. The above suggestions did not solve it. Strangely, I had to sort my dataframe so that block by block the groups appeared in order (i.e. I could not have the following: Block 1 A Block 1 B Block 2 B Block 2 A

    It has to appear as A, B, A, B)

    0 讨论(0)
  • 2021-01-18 15:43

    I know this is pretty old but for future generations (see also: me when I forget and google this again):

    You can determine what the missing values are in your dataframe by running table(groups, blocks) or in the case of this question table(monoSum$isi, monoSum$expID). This will return a table of 0s and 1s. This missing records are in the the cells with 0s.

    I ran into this problem after trying to remove the blocks that had incomplete results; taking a subset of the data did not remove the blocks for some reason.

    0 讨论(0)
  • 2021-01-18 15:45

    I ran into the same cryptic error message in R, though in my case it was resolved when I applied the 'as.matrix' function to what was originally a dataframe for the CSV file I imported in using the read.csv() function.

    I also had a missing data point in my original data set, and I found that when my data was transformed into a matrix for the friedman.test() call, the entire row containing the missing data point was omitted automatically.

    0 讨论(0)
提交回复
热议问题