Подсчитайте количество групп, имеющих определенное значение по нескольким переменным

Если на Ubuntu / Linux перейдите к вашей папке static / css / js ... или где бы вы ни захотели сохранить файл:

wget https://code.jquery.com/jquery-3.3.1.js

Теперь файл находится в вашем текущем каталоге.

2
задан Marco C 13 July 2018 в 10:20
поделиться

3 ответа

База R:

colSums(rowsum(df[, -1], df[, 1]) > 0)

#x y z k 
#4 4 2 3 
5
ответ дан 李哲源 17 August 2018 в 13:10
поделиться
  • 1
    не знал об этой функции rowsum()! – snoram 13 July 2018 в 10:39
  • 2
    Я думаю, что это более простое решение среди других, предлагаемых здесь. – Riverarodrigoa 13 July 2018 в 11:59
  • 3
    wrap stack вокруг него, и вы получите ожидаемый формат вывода – Moody_Mudskipper 13 July 2018 в 12:20

С dplyr и tidyr:

library(dplyr)
library(tidyr)

df %>% 
  gather(k, v, -1) %>% 
  filter(v == 1) %>% 
  group_by(k) %>% 
  summarise(cnt = n_distinct(city))

Результат:

# A tibble: 4 x 2
  k       cnt
  <chr> <int>
1 k         3
2 x         4
3 y         4
4 z         2
2
ответ дан h3rm4n 17 August 2018 в 13:10
поделиться

Используя data.table:

library(data.table)
setDT(df)
df[, lapply(.SD, max), city][, colSums(.SD), .SDcols = -1]
x y z k 
4 4 2 3 
1
ответ дан snoram 17 August 2018 в 13:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: