Contagem do número de instâncias de uma condição por linha R [duplicada]
Esta pergunta já tem uma resposta aqui:
Como contar a frequência de uma string para cada linha em R 2 respostasTenho um arquivo grande com a primeira coluna sendo IDs e as 1304 colunas restantes sendo genótipos, como abaix
rsID sample1 sample2 sample3...sample1304
abcd aa bb nc nc
efgh nc nc nc nc
ijkl aa ab aa nc
Gostaria de contar o número de valores "nc" por linha e enviar o resultado para outra coluna, para obter o seguinte:
rsID sample1 sample2 sample3...sample1304 no_calls
abcd aa bb nc nc 2
efgh nc nc nc nc 4
ijkl aa ab aa nc 1
A função de tabela conta as frequências por coluna, não linha e, se eu transpor os dados para usar na função de tabela, seria necessário que o arquivo tivesse a seguinte aparência:
abcd aa[sample1]
abcd bb[sample2]
abcd nc[sample3] ...
abcd nc[sample1304]
efgh nc[sample1]
efgh nc[sample2]
efgh nc[sample3] ...
efgh nc[sample1304]
Com esse formato, obteria o seguinte, o que eu quero:
ID nc aa ab bb
abcd 2 1 0 1
efgh 4 0 0 0
Alguém tem alguma idéia de uma maneira simples de obter frequências por linha? Estou tentando isso agora, mas está demorando bastante para ser executado:
rsids$Number_of_no_calls <- apply(rsids, 1, function(x) sum(x=="NC"))