我在数据框上使用融化和均值时遇到问题。也许这只是一个初学者的问题。
我有一个包含两个条件和 3 个重复的数据框
set.seed(1)
testdf <- data.frame(name1=letters[1:5],con1_1=floor(runif(5,20,35)),con1_2=floor(runif(5,20,35)),con1_3=floor(runif(5,20,35)),con2_1=floor(runif(5,20,35)),con2_2=floor(runif(5,20,35)),con2_3=floor(runif(5,20,35)))
print(testdf)
name1 con1_1 con1_2 con1_3 con2_1 con2_2 con2_3
1 a 23 33 23 27 34 25
2 b 25 34 22 30 23 20
3 c 28 29 30 34 29 25
4 d 33 29 25 25 21 33
5 e 23 20 31 31 24 25
现在我融化数据框得到这样的东西,我想计算每个条件的平均值......
melt(testdf[1:7],id.vars='name1')
name1 variable value mean_con1 mean_con2
1 a con1_1 23 26.33333 28.66667
2 b con1_1 25 27.00000 24.33333
3 c con1_1 28 29.00000 29.33333
4 d con1_1 33 29.00000 26.33333
5 e con1_1 23 24.66667 26.66667
6 a con1_2 33 26.33333 28.66667
7 b con1_2 34 27.00000 24.33333
8 c con1_2 29 29.00000 29.33333
9 d con1_2 29 29.00000 26.33333
10 e con1_2 20 24.66667 26.66667
11 a con1_3 23 26.33333 28.66667
...
有没有办法用融化的数据框计算平均值,还是我必须重新创建原始数据框并计算平均值,如下所示?
testdf$mean_con1 <- apply(testdf[2:4],1,mean)
testdf$mean_con2 <- apply(testdf[5:7],1,mean)
编辑:
我才意识到,我在我的问题中犯了一个错误。您的答案是正确的,但我真正要寻找的只是一栏中的方法。根据变量交替...这有意义吗?
melt(testdf[1:7],id.vars='name1')
name1 variable value mean
1 a con1_1 23 26.33333
2 b con1_1 25 27.00000
3 c con1_1 28 29.00000
4 d con1_1 33 29.00000
5 e con1_1 23 24.66667
6 a con1_2 33 26.33333
7 b con1_2 34 27.00000
...
16 a con2_1 27 28.66667
17 b con2_1 30 24.33333
18 c con2_1 34 29.33333
19 d con2_1 25 26.33333
20 e con2_1 31 26.66667
21 a con2_2 34 28.66667
22 b con2_2 23 24.33333
...
好吧,也许我解释一下我想要做什么。我想用 ggplot 绘制数据,我想制作表示平均值的条形,并将值作为 geom_points 作为覆盖。我想通过复制给点上色,并按条件对所有内容进行分组......希望有人有想法......