tablas studio seleccionar filtrar filas eliminar datos data contar r count frequency

studio - Cómo contar la frecuencia de una cadena para cada fila en R



seleccionar filas en r (2)

Tengo un archivo .txt que se parece a esto:

rs1 NC AB NC rs2 AB NC AA rs3 NC NC NC ...

Para cada fila, me gustaría contar las frecuencias de "NC", para que mi salida sea algo como a continuación:

rs1 2 rs2 1 rs3 3 ...

¿Alguien puede decirme cómo hacer esto en R o en Linux? ¡Muchas gracias!


dat <- read.table(text="rs1 NC AB NC rs2 AB NC AA rs3 NC NC NC") dat <- rbind(dat, dat, dat, dat)

Puede usar una table rowwise para obtener las frecuencias por fila. En este caso, para la fila 1 a 4, las frecuencias son iguales a medida que copié los datos.

freq <- apply(dat, 1, table) 1 2 3 4 # row-number AA 1 1 1 1 AB 2 2 2 2 NC 6 6 6 6 rs1 1 1 1 1 rs2 1 1 1 1 rs3 1 1 1 1

Si desea tener frecuencias agregadas en todas las filas, use

rowSums(freq) AA AB NC rs1 rs2 rs3 4 8 24 4 4 4


df$count <- rowSums(df[-1] == "NC") # V1 V2 V3 V4 count # 1 rs1 NC AB NC 2 # 2 rs2 AB NC AA 1 # 3 rs3 NC NC NC 3

Podemos usar rowSums en la matriz que se crea a partir de esta expresión df[-1] == "NC" .