Сводка
Я пытаюсь организовать фрейм данных, прежде чем изменить его формат.В моем data.frame есть значения, сгруппированные под 2 факторами (factor1
или factor2
).Уровни в factor2
сгруппированы в пары (например, 13 и 17) под factor 1
.В каждой паре factor2
я бы хотел переименовать одно из чисел в A
, а другое B
.Порядок переименования является произвольным, и любые значения могут быть A
или B
.Как видно из предыдущего примера, 13 или 17 могут быть либо A, либо B, если только дается число A и другой B. Обратите внимание, что некоторые уровни в factor1
не имеют пары данных и могут иметь только 1.
После этого я хочу преобразовать фрейм данных в другой формат, как показано ниже (см. # 3)
Вот пример data.frame
sampledata <- data.frame(factor0 = c("A", "A", "H", "H", "A", "A", "H", "H", "A", "A",
"H", "H", "A", "A", "H", "H", "A", "A", "H", "H"),
factor1 = c("1", "1", "2", "2", "3", "3", "4", "4", "5", "5",
"6", "6", "7", "7", "8", "8", "9", "9", "10", "10"),
factor2 = c("13", "17", "14", "18", "5", "15", "19", "16", "20", "17",
"18", "19", "21", "24", "27", "28", "30", "30", "17", "18"),
value1 = c(1, 5, 6, 2, 6, 8, 10, 21, 30, 5, 3, 5, 4, 50, 4, 7, 15, 48, 20, 21,
value1.se = c(0.5, 0.5, 0.6, 0.2, 0.6, 0.8, 0.10, 0.21, 0.30, 0.5,
0.3, 0.5, 0.4, 1.50, 1.4, 1.7, 1.5, 0.48, 2.1, 21)))
1,Сначала таблица данных будет выглядеть так:
> sampledata
# factor0 factor1 factor2 value1 value1.se
# 1 A 1 13 1 0.5
# 2 A 1 17 5 0.5
# 3 H 1 14 6 0.6
# 4 H 1 18 2 0.2
# 5 A 2 5 6 0.6
# 6 A 2 15 8 0.8
# 7 H 2 19 10 0.10
# 8 H 2 16 21 0.21
2.После этого таблица будет выглядеть так:
> sampledata
# factor0 factor1 factor2 value1 value1.se
# 1 A 1 A 1 0.5
# 2 A 1 B 5 0.5
# 3 H 1 A 6 0.6
# 4 H 1 B 2 0.2
# 5 A 2 A 6 0.6
# 6 A 2 B 8 0.8
# 7 H 2 A 10 0.10
# 8 H 2 B 21 0.21
3.Наконец, таблица данных должна выглядеть следующим образом:
> sampledata
# factor0 factor1 value_A value_B se_A se_B
# 1 A 1 1 5 0.5 0.5
# 2 H 1 6 2 0.6 0.2
# 3 A 2 6 8 0.6 0.8
# 4 H 2 10 21 0.10 0.21
У меня есть еще один фактор, который я хотел бы сгруппировать по (factor0
), но я думаю, что справлюсь сам.Основная причина, по которой я хочу организовать данные таким образом, заключается в том, что я могу нанести value_A
и valueB
друг на друга, при этом factor0
будет окрашен.