R 如何使用分数数据计算可变列数的平均变化
我试图找出重复测量中分数的平均差异。问题是,并不是每项观察都经常被不平等地衡量,列中的值代表6分制的分数 数据以长格式和宽格式呈现,如下所示:R 如何使用分数数据计算可变列数的平均变化,r,R,我试图找出重复测量中分数的平均差异。问题是,并不是每项观察都经常被不平等地衡量,列中的值代表6分制的分数 数据以长格式和宽格式呈现,如下所示: ID Type M1 M2 M3 M4 M6 1 A 5 5 3 2 A 4 3 1 3 A 2 5 3 5 5 4 C 5 4 4 3 5
ID Type M1 M2 M3 M4 M6
1 A 5 5 3
2 A 4 3 1
3 A 2 5 3 5 5
4 C 5 4 4 3
5 B 3
6 F 4 2 3 4 1
这是另一种格式:
ID Type M Score
1 A 1 5
1 A 2 5
1 A 3 3
2 A 1 4
2 A 2 3
2 A 3 1
4 C 1 5
4 C 2 4
4 C 3 4
4 C 4 3
我对中间值不是很感兴趣,但是我需要M1和ID的最后一个度量值之间的差值,然后我需要取这些差值的平均值。我将需要在所有类型中都这样做,然后再按类型细分
安装的软件包有:dplyr、purrr、stringr、tydir、tibble、data.table
我得到的最接近的结果如下:
df %>% group_by(M)%>%
arrange(M)%>%
summarize(avg = as.numeric(mean(diff(Score))), sd =
as.numeric(sd(diff(Score))))
及
这是在长格式数据上完成的,并给出了结果:
M avg sd
<fctr> <dbl> <dbl>
1 1 NA NA
2 2 NA NA
3 3 -0.03370787 1.741534
4 4 -0.04878049 2.036556
5 5 -0.18181818 1.887760
6 6 0.00000000 1.095445
7 7 NaN NA
8 8 NaN NA
9 9 NaN NA
10 <NA> -0.16666667 1.722401
M平均标准差
1纳纳
2 NA NA
3 3 -0.03370787 1.741534
4 4 -0.04878049 2.036556
5 5 -0.18181818 1.887760
6 6 0.00000000 1.095445
7南那
8南那
9南那
10 -0.16666667 1.722401
上表取自我的分析,与示例表无关。NA和NaN是一个问题,因为我知道某些部分有数据,但无法计算平均差异 每个
ID
的avg
的一个解决方案是基于OP反馈使用dplyr
计算第一次和最后一次测量的平均差值
library(dplyr)
df %>% group_by(ID) %>%
arrange(M) %>%
summarise(avg = abs(first(Score) - last(Score))/n())
#Result
# ID avg
# <int> <dbl>
#1 1 0.667
#2 2 1.00
#3 4 0.500
请在代码中包含您使用过的任何包的名称
%%>%%
给了我一个错误。您的预期结果是什么?为了澄清,您需要每个ID的M的平均值和sd吗?这就是您的代码试图做的,但是您的文本表明您只需要MSorry的第一个和最后一个值之间的差异,我忘了包括包,它们在我的标准启动库中,所以我通常会考虑它们。我使用:dplyr、purr、tidyr和tibbleAwesome,谢谢你的帮助。代码目前看起来有点凌乱,但暂时可以。谢谢你的快速回答。@ssvenkerud很高兴它帮助了你。您可以修改您的问题,以便将来的用户了解。也许这也会让人们喜欢你的问题。
library(dplyr)
df %>% group_by(ID) %>%
arrange(M) %>%
summarise(avg = abs(first(Score) - last(Score))/n())
#Result
# ID avg
# <int> <dbl>
#1 1 0.667
#2 2 1.00
#3 4 0.500
df %>% group_by(ID) %>%
arrange(M) %>%
summarise(avg = mean(Score), SD = sd(Score))
#Result
ID avg SD
<int> <dbl> <dbl>
1 1 4.33 1.15
2 2 2.67 1.53
3 4 4.00 0.816