Número de instancias de una condición por fila R [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Cómo contar la frecuencia de una cadena para cada fila en R 2 respuestasTengo un archivo grande con la primera columna como ID, y las 1304 columnas restantes son genotipos como a continuación.
rsID sample1 sample2 sample3...sample1304
abcd aa bb nc nc
efgh nc nc nc nc
ijkl aa ab aa nc
Me gustaría contar el número de valores "nc" por fila y enviar el resultado de eso a otra columna para obtener lo siguiente:
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
La función de tabla cuenta las frecuencias por columna, no por fila, y si transpongo los datos para usar en la función de tabla, necesitaría que el archivo se vea así:
abcd aa[sample1]
abcd bb[sample2]
abcd nc[sample3] ...
abcd nc[sample1304]
efgh nc[sample1]
efgh nc[sample2]
efgh nc[sample3] ...
efgh nc[sample1304]
Con este formato, obtendría lo siguiente, que es lo que quiero:
ID nc aa ab bb
abcd 2 1 0 1
efgh 4 0 0 0
¿Alguien tiene alguna idea de una forma simple de obtener frecuencias por fila? Estoy intentando esto ahora, pero me está tomando bastante tiempo ejecutarlo:
rsids$Number_of_no_calls <- apply(rsids, 1, function(x) sum(x=="NC"))