У меня есть датафрейм foo:
A B C
1 x m 2
2 x n 3
3 x o 11
4 y m 5
5 y o 8
Редактировать: спасибо @akrun за напоминание, я добавляю код для создания этого df:
foo <- structure(list(A = c("x", "x", "x", "y", "y"),
B = c("m", "n", "o", "m", "o"), C = c(2L, 3L, 11L, 5L, 8L)),
class = "data.frame", row.names = c("1", "2", "3", "4", "5"))
и из него я хочу создать новый фрейм данных со значениями в A в качестве имен строк, в значениях B в качестве имен столбцов и в качестве записей значений в C, например так:
m n o
x 2 3 11
y 5 NA 8
Пока что я нашел функцию aggregate ()
aggregate(.~A, foo, FUN=toString)
, которая дает мне вот что вот так (хотя он преобразует буквы в B в числа), но это не то, что мне нужно:
A B C
1 x 1,2,3 2,3,11
2 y 1,3 5,8
I нашел ответы на SO, предлагая пакет dplyr и group_by для подобных проблем, но я не мог обдумать, как приспособить это к моей проблеме. Извините, если я что-то упустил, спасибо за любые предложения!