anova_test() 中的 Spread() 错误:如何使键唯一?

问题描述 投票:0回答:1

我正在尝试运行双向重复测量方差分析来查看条件和时间对收缩压的影响。我正在使用

anova_test()
函数,但收到错误:

Error in `spread()`:
! Each row of output must be identified by a unique combination of keys.
ℹ Keys are shared for 6 rows
• 14, 36
• 182, 204
• 98, 120

我不确定为什么这些读起来不独特?

> df_lbp[c(14,36),]
# A tibble: 2 × 10
  subject_id condition visit  time  syst  timef      conditionf
       <dbl>     <dbl> <dbl> <int> <dbl>  <fct>      <fct>     
1        129         0     1     1  106.  anticipate Control   
2        165         1     1     1  119   anticipate Stress    
> df_lbp[c(182, 204),]
# A tibble: 2 × 10
  subject_id condition visit  time  syst  timef    conditionf
       <dbl>     <dbl> <dbl> <int> <dbl>  <fct>    <fct>     
1        129         0     1     3  103.  recovery Control   
2        165         1     1     3  121.  recovery Stress    
> df_lbp[c(98, 120),]
# A tibble: 2 × 10
  subject_id condition visit  time  syst  timef conditionf
       <dbl>     <dbl> <dbl> <int> <dbl>  <fct> <fct>     
1        129         0     1     2  102.  task  Control   
2        165         1     1     2  128   task  Stress 

我很好奇 r 是从什么中提取出来用作密钥的,并且我非常感谢任何帮助使其正常工作的帮助。我的代码和数据如下。


a1 <- anova_test( data = df_lbp, dv = syst,
                  wid = subject_id, 
                  within = c(timef, conditionf) )

get_anova_table(a1)

 dput(df_lbp))
structure(list(subject_id = c(102, 103, 104, 107, 108, 109, 110, 
112, 117, 118, 124, 125, 126, 129, 130, 132, 133, 136, 138, 139, 
140, 141, 142, 146, 147, 149, 150, 151, 153, 155, 156, 158, 159, 
160, 161, 165, 167, 172, 174, 175, 176, 177, 178, 179, 181, 182, 
183, 184, 102, 104, 107, 108, 109, 112, 115, 116, 118, 123, 124, 
125, 126, 131, 133, 138, 139, 140, 141, 144, 149, 152, 154, 155, 
157, 161, 164, 165, 168, 169, 172, 174, 176, 178, 179, 183, 102, 
103, 104, 107, 108, 109, 110, 112, 117, 118, 124, 125, 126, 129, 
130, 132, 133, 136, 138, 139, 140, 141, 142, 146, 147, 149, 150, 
151, 153, 155, 156, 158, 159, 160, 161, 165, 167, 172, 174, 175, 
176, 177, 178, 179, 181, 182, 183, 184, 102, 104, 107, 108, 109, 
112, 115, 116, 118, 123, 124, 125, 126, 131, 133, 138, 139, 140, 
141, 144, 149, 152, 154, 155, 157, 161, 164, 165, 168, 169, 172, 
174, 176, 178, 179, 183, 102, 103, 104, 107, 108, 109, 110, 112, 
117, 118, 124, 125, 126, 129, 130, 132, 133, 136, 138, 139, 140, 
141, 142, 146, 147, 149, 150, 151, 153, 155, 156, 158, 159, 160, 
161, 165, 167, 172, 174, 175, 176, 177, 178, 179, 181, 182, 183, 
184, 102, 104, 107, 108, 109, 112, 115, 116, 118, 123, 124, 125, 
126, 131, 133, 138, 139, 140, 141, 144, 149, 152, 154, 155, 157, 
161, 164, 165, 168, 169, 172, 174, 176, 178, 179, 183), condition = c(1, 
0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 
1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 
0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 
0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 
1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 
0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 
0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 
1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 
0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1), 
    visit = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
    2, 2, 2, 2, 2, 2, 2, 2), time = c(1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L), syst = c(141, 108.5, 130.5, 119.5, 
    110, 101, 122.5, 119.5, 106.5, 118.5, 105.5, 114, 130.5, 
    105.5, 109, 123.5, 103.5, 113.5, 107.5, 154, 124, 100.5, 
    110, 110, 100.5, 126, 105.5, 112.5, 111.5, 106, 114.5, 111.5, 
    127, 112.5, 116.5, 119, 129, 115.5, 100.5, 106.5, 112, 121.5, 
    118.5, 123, 138, 129.5, 100.5, 104, 125.5, 105.5, 97, 99, 
    105.5, 107, 108.5, 123, 107, 111.5, 103, 123, 124.5, 140, 
    124, 124.5, 106.5, 101, 100, 110, 99.5, 118.5, 109.5, 101.5, 
    114, 106.5, 138.5, 104.5, 117.5, 100.5, 125.5, 109, 95.5, 
    107, 122, 116, 152.3333333, 104.3333333, 147.6666667, 115, 
    108.3333333, 96.66666667, 133.6666667, 140.6666667, 122, 
    141, 100.6666667, 116, 130.6666667, 102.3333333, 109.3333333, 
    138.3333333, 102.3333333, 106, 104, 164.3333333, 130, 96.66666667, 
    114, 112.6666667, 93.66666667, 132, 102.3333333, 113, 109, 
    104.3333333, 109, 114.6666667, 129.6666667, 124, 129.6666667, 
    128, 128, 117.6666667, 97.33333333, 106.6666667, 116, 141.3333333, 
    151.3333333, 137, 151.6666667, 145.3333333, 99.66666667, 
    102.3333333, 127.6666667, 103, 106.6666667, 109, 131, 104.3333333, 
    111.6666667, 145.3333333, 108.3333333, 108, 103.3333333, 
    140.3333333, 133, 146.6666667, 131.3333333, 143, 109, 102.6666667, 
    133.6666667, 120.3333333, 104.3333333, 119, 126, 117.6666667, 
    113, 108, 132.3333333, 101.3333333, 121.6666667, 97.66666667, 
    120.6666667, 120, 93.33333333, 104.6666667, 121, 137.3333333, 
    138.8333333, 110.6666667, 126.8333333, 112.8333333, 107.5, 
    96.33333333, 123, 115.3333333, 100, 119.6666667, 102, 107.8333333, 
    127.3333333, 102.8333333, 108.3333333, 117.8333333, 102.8333333, 
    107.8333333, 109.6666667, 139.5, 116.8333333, 92.33333333, 
    115.5, 113.3333333, 96.33333333, 114.6666667, 100.8333333, 
    107.1666667, 110, 104.3333333, 108.3333333, 116.5, 125.3333333, 
    113.5, 115.6666667, 120.8333333, 121, 95.66666667, 98.33333333, 
    106, 114.5, 120, 122.3333333, 126.8333333, 129.5, 129.1666667, 
    97.5, 101.5, 135, 107.8333333, 107.3333333, 104.6666667, 
    111.1666667, 104.3333333, 110, 111.3333333, 106.8333333, 
    108, 103.5, 124.6666667, 130.3333333, 136.8333333, 116.8333333, 
    115.8333333, 108.3333333, 102, 104.6666667, 109.1666667, 
    101, 119.1666667, 113, 110, 112.5, 110, 128.1666667, 103.3333333, 
    118.8333333, 102.8333333, 118.3333333, 107.3333333, 97.33333333, 
    109.5, 123.1666667, 114.6666667), timef = structure(c(1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), levels = c("anticipate", 
    "task", "recovery"), class = "factor"), conditionf = structure(c(2L, 
    1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 
    1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 
    1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 
    1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 
    2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 
    1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 
    2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 
    1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 
    2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 
    2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 
    2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 
    1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 
    1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 
    1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 
    2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 
    1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 
    2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L), levels = c("Control", 
    "Stress"), class = "factor")), row.names = c(NA, -252L), na.action = structure(c(`5` = 5L, 
`11` = 11L, `13` = 13L, `14` = 14L, `15` = 15L, `16` = 16L, `19` = 19L, 
`20` = 20L, `21` = 21L, `22` = 22L, `23` = 23L, `27` = 27L, `28` = 28L, 
`31` = 31L, `34` = 34L, `35` = 35L, `37` = 37L, `43` = 43L, `44` = 44L, 
`45` = 45L, `48` = 48L, `52` = 52L, `54` = 54L, `57` = 57L, `62` = 62L, 
`63` = 63L, `64` = 64L, `66` = 66L, `68` = 68L, `69` = 69L, `70` = 70L, 
`71` = 71L, `73` = 73L, `80` = 80L), class = "omit"), reshapeLong = list(
    varying = list(s = c("syst_anticipate", "syst_task", "syst_recovery"
    ), d = c("dias_anticipate", "dias_task", "dias_recovery"), 
        m = c("map_anticipate", "map_task", "map_recovery"), 
        p = c("pulse_anticipate", "pulse_task", "pulse_recovery"
        )), v.names = c("syst", "dias", "map", "pulse"), idvar = c("subject_id", 
    "condition", "visit"), timevar = "time"), class = c("tbl_df", 
"tbl", "data.frame"))
r anova spread
1个回答
1
投票

您对

subject_id
161 的观察有多个条目(不同的
timef
值):

library(dplyr)

df_lbp |>
  count(subject_id, timef, conditionf) |>
  filter(n > 1)

输出:

# A tibble: 3 x 4
  subject_id timef      conditionf     n
       <dbl> <fct>      <fct>      <int>
1        161 anticipate Stress         2
2        161 task       Stress         2
3        161 recovery   Stress         2

...没有这些重复项,

anova_test
运行正常:

df_lbp |>
  filter(subject_id != 161) |>
  rstatix::anova_test(dv = syst,
                      wid = subject_id, 
                      within = c(timef, conditionf)
                      )

输出:

+ ANOVA Table (type III tests)

$ANOVA
            Effect DFn DFd      F        p p<.05   ges
1            timef   2  46 38.931 1.28e-10     * 0.076
2       conditionf   1  23 28.937 1.83e-05     * 0.284
3 timef:conditionf   2  46 37.078 2.57e-10     * 0.087
## etc.
© www.soinside.com 2019 - 2024. All rights reserved.