#r
#r
Вопрос:
Я пытаюсь объединить строки во фрейме данных с коэффициентами и числовыми значениями. Вот пример, похожий на то, что я пытаюсь сделать.
Letter Freq
a .1
b .2
c .3
d .4
Я хотел бы объединить строки 1, 2 и 3, например, и получить…
Letter Freq
group .6
d .4
Обычно я могу найти что-то подобное на этом сайте, но я не уверен, что я не ищу правильную терминологию или что.
Ответ №1:
Одним из вариантов было бы изменить первые три levels
в «букве» на «группу», а затем использовать aggregate
для получения sum
«частоты» по «букве»
levels(df1$Letter)[1:3] <- "group"
aggregate(Freq~Letter, df1, sum)
# Letter Freq
#1 group 0.6
#2 d 0.4
Комментарии:
1. Спасибо, допустим, мне пришлось отсортировать свои данные, поэтому a, b и c на самом деле не равны 1: 3. Как мне захватить определенные строки, такие как 26, 17, 24 и 10 (в большем наборе данных)?
2. @ChristopherFlach Вы можете попробовать
levels(df1$Letter)[levels(df1$Letter) %in% c('a', 'b', 'c')] <- "group"