У меня есть кадр данных с двумя столбцами: один - это строки, другой - целые числа.R: Совокупные символьные строки с c
> rnames = sapply(1:20, FUN=function(x) paste("item", x, sep="."))
> x <- sample(c(1:5), 20, replace = TRUE)
> df <- data.frame(x, rnames)
> df
x rnames
1 5 item.1
2 3 item.2
3 5 item.3
4 3 item.4
5 1 item.5
6 3 item.6
7 4 item.7
8 5 item.8
9 4 item.9
10 5 item.10
11 5 item.11
12 2 item.12
13 2 item.13
14 1 item.14
15 3 item.15
16 4 item.16
17 5 item.17
18 4 item.18
19 1 item.19
20 1 item.20
Я пытаюсь агрегировать строки в списке или векторы строк (символов) с «с» или функции «список», но получать странные результаты:
> aggregate(rnames ~ x, df, c)
x rnames
1 1 16, 6, 11, 13
2 2 4, 5
3 3 12, 15, 17, 7
4 4 18, 20, 8, 10
5 5 1, 14, 19, 2, 3, 9
Когда я используйте 'paste' вместо 'c', я вижу, что агрегат работает правильно, но результат не тот, который я ищу.
> aggregate(rnames ~ x, df, paste)
x rnames
1 1 item.5, item.14, item.19, item.20
2 2 item.12, item.13
3 3 item.2, item.4, item.6, item.15
4 4 item.7, item.9, item.16, item.18
5 5 item.1, item.3, item.8, item.10, item.11, item.17
Что я ищу в том, что каждая агрегируются группа будет представлена в виде вектора или зажженной (отсюда и использование с), в отличие от одной строки я получаю с «вставить». Что-то в строках следующего (что на самом деле не работает):
> aggregate(rnames ~ x, df, c)
x rnames
1 1 item.5, item.14, item.19, item.20
2 2 item.12, item.13
3 3 item.2, item.4, item.6, item.15
4 4 item.7, item.9, item.16, item.18
5 5 item.1, item.3, item.8, item.10, item.11, item.17
Любая помощь будет принята с благодарностью.
Прохладный. Я что-то узнал! :-) – DataWookie