Подсчитать вхождение сущности столбца в фрейм данных, используя R - PullRequest
0 голосов
/ 19 октября 2018

Что мне нужно: Сколько раз значения определенного столбца повторяются.

df <- Route1 Route2 Route3 Route4
       a       b      c      a
       d       c      a      k
       e       c      b      c
       c       a      a      b

Теперь я хочу посчитать, сколько раз приходят значения Route4 (включая Route4).Ожидаемый результат:

  Ans  <- Route1 Route2 Route3 Route4   Count
            a       b      c      a       2       #as a has come 2 times
            d       c      a      k       1       #as k has come 1 times
            e       c      b      c       2       #as c has come 2 times
            c       a      a      b       1       #as b has come 1 times

Любой пакет или прямой подход приветствуются.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Мы можем использовать rowSums.Обратите внимание, что все столбцы должны быть в символах, а не в факторах.

df$count <- rowSums(df == df$Route4)

df
#   Route1 Route2 Route3 Route4 count
# 1      a      b      c      a     2
# 2      d      c      a      k     1
# 3      e      c      b      c     2
# 4      c      a      a      b     1

DATA

df <- read.table(text = "Route1 Route2 Route3 Route4
       a       b      c      a
       d       c      a      k
       e       c      b      c
       c       a      a      b",
                  header = TRUE, stringsAsFactors = FALSE)
0 голосов
/ 19 октября 2018

Использование apply: мы можем искать данные столбца Route4 в каждой строке и измерять их length.

df$count <- apply(df, 1, function(x) length(which(x==x[4])))

Вывод:

    Route1 Route2 Route3 Route4 count
1      a      b      c      a     2
2      d      c      a      k     1
3      e      c      b      c     2
4      c      a      a      b     1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...