Как построить новый столбец (/data.frame) из таблицы и назначить соответствующие значения для строк - PullRequest
1 голос
/ 09 июля 2011

Я распечатал сводку переменных столбца как:

summary(document$subject)

summary(document$subject)

A, B, C, D, E, F, .. являются субъектами, относящимися к столбцу data.frame, где A, B, C, ... появляются много раз в столбце, и краткое изложение выше показывает количество раз (частота) эти предметы появились в файле. Также термин «ДРУГОЙ» относится к тем предметам, которые появились в файле только один раз, мне также нужно присвоить «1» этим предметам.

Есть так много разных предметов, что трудно перечислить их все, если мы используем команду "c".

Я хочу создать новый столбец (или data.frame) и затем назначить эти соответствующие цифры (баллы) субъектам. В идеале это станет так в файле:

A    198
B    113
C    96
D    69
A    198
E    65
F    62
A    198
C    113
BZ   21
BC    1
CJ    1

...

Интересно, какую команду мне следует использовать, чтобы взять оценки / значения из сводной таблицы, а затем построить новый столбец, чтобы присвоить эти значения соответствующим субъектам в файле.

Кроме того, поскольку это сводная таблица, напечатанная R , я не знаю, как встроить ее в таблицу в файле или извлечь значения и имена субъектов из таблицы. Мне также интересно, как я мог узнать имена субъектов, которые появлялись в файле только один раз, чтобы сводная таблица добавила их в «ДРУГОЕ».

1 Ответ

4 голосов
/ 09 июля 2011

Ваш вопрос трудно интерпретировать без воспроизводимого примера. Пожалуйста, посмотрите на эту угрозу, чтобы узнать, как это сделать:

Как сделать великолепный воспроизводимый пример R?

Сказав это, вот как я интерпретирую ваш вопрос. У вас есть два фрейма данных, один с оценкой по каждому предмету, а другой с несколькими предметами в столбце:

Sum <- data.frame(subject=c("A","B"),score=c(1,2))
foo <- data.frame(subject=c("A","B","A"))

> Sum
  subject score
1       A     1
2       B     2
> foo
  subject
1       A
2       B
3       A

Затем можно использовать match(), чтобы сопоставить субъекты в одном фрейме данных с другим и создать новую переменную во втором фрейме данных:

foo$score <- Sum$score[match(foo$subject, Sum$subject)]

> foo
  subject score
1       A     1
2       B     2
3       A     1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...