У меня проблема с использованием плавления и среднего значения во фрейме данных. Возможно, это просто проблема новичка.
У меня есть фрейм данных с двумя условиями и 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 в качестве наложения. Я хочу раскрасить точки по повторениям и сгруппировать все по условию... Надеюсь, у кого-то есть идея...