Мой фрейм данных выглядит так:
x <- data.frame(c("a","a","a","a","b","b","c","c","c","a", "a"), c(1,2,3,4,1,2,1,2,3, 1, 2))
names(x) <- c("id","nr")
id nr
1 a 1
2 a 2
3 a 3
4 a 4
5 b 1
6 b 2
7 c 1
8 c 2
9 c 3
10 a 1
11 a 2
Я хочу иметь что-то вроде этого:
id 1 2 3 4
a 1 2 3 4
a 1 2 NA NA
b 1 2 NA NA
c 1 2 3 NA
Я уже использовал dcast(x, id ~ nr, value.var ="nr")
, но получил предупреждение:
«Отсутствует функция агрегирования: по умолчанию используется длина».
Я понимаю, что это связано с неуникальными строками. Также я создал группы, которые дали мне результаты выше. Но есть ли способ создать его без создания групп?
x <- data.frame(c("a","a","a","a","b","b","c","c","c","a", "a"),
c(1,1,1,1,1,1,1,1,1,2,2), c(1,2,3,4,1,2,1,2,3, 1, 2))
names(x) <- c("id", "group","nr")
dcast(x, id + group ~ nr, value.var = "nr")