В рамках пилотного опроса я представил каждому туркеру наборы вариантов выбора из четырех альтернатив. Данные выглядят следующим образом:
> so
WorkerId pio_1_1 pio_1_2 pio_1_3 pio_1_4 pio_2_1 pio_2_2 pio_2_3 pio_2_4
1 1 Yes No No No No No Yes No
2 2 No Yes No No Yes No Yes No
3 3 Yes Yes No No Yes No Yes No
Я бы хотел, чтобы они выглядели так:
WorkerId set pio1 pio2 pio3 pio4
1 1 Yes No No No
1 2 No No Yes No
...
Я могу разобраться с этим несколькими способами, ни один из которых не кажется очень элегантным:
Но кажется мне кажется, что все они игнорируют идею о том, что данные в том, что вы могли бы назвать «двойным широким» форматом, имеют свою собственную структуру. Я бы с удовольствием использовал для этого пакет reshape2, но, несмотря на то, что данные были созданы с помощью cast(), я не вижу никаких вариантов, которые помогли бы мне по-настоящему расплавить этот data.frame обратно.
Предложения приветствуются.
so <- structure(list(WorkerId = 1:3, pio_1_1 = structure(c(2L, 1L,
2L),.Label = c("No", "Yes"), class = "factor"), pio_1_2 = structure(c(1L,
2L, 2L),.Label = c("No", "Yes"), class = "factor"), pio_1_3 = structure(c(1L,
1L, 1L),.Label = c("No", "Yes"), class = "factor"), pio_1_4 = structure(c(1L,
1L, 1L),.Label = "No", class = "factor"), pio_2_1 = structure(c(1L,
2L, 2L),.Label = c("No", "Yes"), class = "factor"), pio_2_2 = structure(c(1L,
1L, 1L),.Label = c("No", "Yes"), class = "factor"), pio_2_3 = structure(c(2L,
2L, 2L),.Label = c("No", "Yes"), class = "factor"), pio_2_4 = structure(c(1L,
1L, 1L),.Label = "No", class = "factor")),.Names = c("WorkerId",
"pio_1_1", "pio_1_2", "pio_1_3", "pio_1_4", "pio_2_1", "pio_2_2",
"pio_2_3", "pio_2_4"), row.names = c(NA, 3L), class = "data.frame")