от
    На этот вопрос уже есть ответ здесь:                           Как посчитать частоту строки для каждой строки в R                                      2 ответа                                                Подсчет количества экземпляров условия в строке R [дубликаты]                                      1 ответ                                     У меня есть следующий фрейм данных, и я хочу подсчитать вхождения слова «High» для каждой строки и добавить в качестве другого столбца сказать «countHigh» для фрейма данных
     a    b    c
1 High High High
2 High  Low High
3  Low  Low High
Поэтому я должен получить вектор отсчетов (3,2,1). Я пытался применить apply () и stringr: str_count следующим образом:
> apply(test.df[,1:3],1,str_count,"High" )

    [,1] [,2] [,3]
[1,]    1    1    0
[2,]    1    0    0
[3,]    1    1    1
и я использовал функцию apply () дважды:
> apply(apply(test.df[,1:3],1,str_count,"High" ),2,sum)
[1] 3 2 1
Есть ли лучший способ сделать это, особенно с помощью apply () только один раз и с помощью grep () или which ()? Спасибо              

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

1 Ответ

0 голосов
от
Если это фиксированная строка, то создайте логическую матрицу с помощью
==
и получите
rowSums
из
base R
(должен быть быстрым по сравнению с 6lPM3Bt8Gj6TsqFFOucj)
test.df$countHigh
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...