Подсчет общих взаимоисключающих элементов в кадре данных - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть кадр данных, который выглядит следующим образом:

df <- structure(c("IGTB10", "IGTB10", "IGTB100", "IGTB1004", "IGTB1007", 
            "IGTB1009", "CD4 T-cells", "Monocytes", "CD4 T-cells", "CD4 T-cells", 
            "CD4 T-cells", "Monocytes"), .Dim = c(6L, 2L), .Dimnames = list(
              NULL, c("Individual", "cellType")))

Я хотел бы подсчитать, сколько людей имеют моноциты и клетки CD4, у скольких только моноциты и клетки CD4 каждый. Что было бы самым простым способом сгруппировать или объединить это?

1 Ответ

1 голос
/ 06 ноября 2019

Очень быстрый ответ без пакетов, составьте таблицу, чтобы узнать, есть ли у каждого человека CD4 или моноциты

table(df[,1],df[,2])

           CD4 T-cells Monocytes
  IGTB10             1         1
  IGTB100            1         0
  IGTB1004           1         0
  IGTB1007           1         0
  IGTB1009           0         1

Если взять сумму строк,

rowSums(table(df[,1],df[,2]))
  IGTB10  IGTB100 IGTB1004 IGTB1007 IGTB1009 
       2        1        1        1        1 

Только IGTB10имеет 2, что означает и CD4, и моноцит

Если мы будем использовать весь код подряд,

sum(rowSums(table(df[,1],df[,2]))==2)

Только у одного человека есть и CD4, и моноциты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...