R: Есть таблица в формате One-Hot. Однако сумма отсчетов каждого столбца не суммируется с общим числом строк. - PullRequest
0 голосов
/ 05 марта 2020

У меня есть фрейм данных примерно так:

temp <- data.frame("a" = c(1,0,0,1,0,0), "b" = c("0","1", "0", "1", "0", "1"), 'c'=c("0","0", "1", "0", "1", "1"))  

По сути, я хочу найти строки 4 и 6, так как они имеют два значения 1, а не 1. Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 05 марта 2020

Вы можете сравнить temp с 1 и использовать rowSums, чтобы подсчитать количество единиц в каждой строке и получить индекс строки, где он больше 1.

which(rowSums(temp == 1) > 1)
#[1] 4 6

Используя apply, это похоже:

which(apply(temp == 1, 1, sum) > 1)
0 голосов
/ 05 марта 2020

В base R мы также можем использовать Reduce с lapply

which(Reduce(`+`, lapply(temp, `==`, 1)) > 1)
#[1] 4 6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...