Текстовая кросс-таблица в R - PullRequest
1 голос
/ 19 октября 2011

Мне нужно создать сводную таблицу в R, которая будет иметь текстовые значения вместо агрегированных функций SUM или AVERAGE.Примерно как в примере ниже:

Исходная таблица (в кадре данных с полями Пользователь, Поле, Текст):

Пользователь |Поле |Текст
Группа1 |Поле 1 |Текстовое содержимое A
Group1 |Поле 2 |Текстовое содержание B
Group2 |Поле 1 |Текстовое содержимое C
Group2 |Поле 2 |Текстовое содержание D
Group3 |Поле 1 |Текстовое содержимое E

Результат, который мне нужен в R с использованием кросс-табуляции:

Пользователь |Поле 1 |Поле 2
Группа1 |Текстовое содержание A |Текстовое содержание B
Group2 |Текстовое содержимое C | Текстовое содержимое D
Group3 |Текстовое содержимое E | NA
Затем мне нужно сохранить результат как CSV ... но это самая простая часть:)

Есть ли способ достичь этого?

Большое спасибоMA

1 Ответ

3 голосов
/ 19 октября 2011

Это то, что reshape (переход от «длинного» формата к «широкому» формату). Другие люди предпочитают пакет reshape, но оба подойдут для этого простого случая.

Вот решение с базовой функцией:

tmp<-data.frame(user=c("G1", "G1", "G2", "G2", "G3"), field=c("F1", "F2", "F1", "F2", "F1"), txt=c("A", "B", "C", "D", "E"))
reshape(data=tmp, direction="wide", timevar="field", idvar="user")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...