Есть ли способ определить, сколько строк в наборе данных имеют одну и ту же категориальную переменную для нескольких условий (столбцов)? - PullRequest
0 голосов
/ 03 апреля 2020

Например, у меня есть набор данных ниже, где 1 = да и 0 = нет, и мне нужно выяснить, сколько звонков было сделано по стационарному телефону, который длился менее 10 минут.

Изображение пример набора данных

Ответы [ 4 ]

1 голос
/ 03 апреля 2020

Вы также можете специально определить значения, которые вы ищете в каждом столбце, когда вы находите сумму. (Это поможет, если вам нужно подсчитать строки со значениями, отличными от 1 в столбце.)

sum(df$landline == 1 & df$`under 10 minutes` == 1)
0 голосов
/ 03 апреля 2020

Функция grep находит строки, где стационарный = 1. Затем мы называем только эти строки и sum столбец менее 10 минут.

sum( df[ grep(1,df[,1]) ,4] )
0 голосов
/ 03 апреля 2020

R будет удобно обрабатывать 1 и 0 так, как будто они означают TRUE и FALSE, поэтому мы можем применять к ним логические логические операции, такие как AND (&) и OR (|).

df <- data.frame(x = c(1, 0, 1, 0), 
                 y = c(0, 0, 1, 1))

> sum(df$x & df$y)
[1] 1
> sum(df$x | df$y)
[1] 3

Для будущих вопросов вы должны посмотреть, как использовать такие функции, как dput или другие способы, чтобы привести пример набора данных вместо использования изображения.

0 голосов
/ 03 апреля 2020

Мы можем использовать sum

sum(df1[, "under 10 minutes"])

Если нужны два столбца

colSums(df1[, c("landline", "under 10 minutes")])

Если мы проверяем оба столбца, используйте rowSums

sum(rowSums(df1[, c("landline", "under 10 minutes")], na.rm = TRUE) == 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...