GOOGLE ADS

sábado, 30 de abril de 2022

Obtenga una fila en el marco de datos R por nombre

Estoy empezando a aprender R y tengo algunos problemas para recuperar una fila en el marco de datos por nombre. A continuación se muestra la salida de la consola. ¿Por qué df[c("0610007C21Rik"),] da el mismo resultado que df[1,] y qué debo hacer para recuperar la fila por nombre? Gracias de antemano.

> df
# A tibble: 7,236 × 2
gene means
<chr> <dbl>
1 0610007C21Rik 22.2
2 0610007L01Rik 72.1
3 0610007P08Rik 75.2
4 0610007P14Rik 20.3
5 0610009B22Rik 44.4
6 0610009D07Rik 42.8
7 0610009O20Rik 53.7
8 0610010O12Rik 57.6
9 0610011F06Rik 29.4
10 0610030E20Rik 66.0
# … with 7,226 more rows
> df[1,]
# A tibble: 1 × 2
gene means
<chr> <dbl>
1 0610007C21Rik 22.2
> df[c("0610007C21Rik"),]
# A tibble: 1 × 2
gene means
<chr> <dbl>
1 <NA> NA


Solución del problema

Técnicamente, los nombres de las filas son esos números a la izquierda, por lo que en este caso, indexar por número de fila es lo mismo que indexar por nombre de fila. Puede cambiar sus nombres de fila usando la rownames()función, pero probablemente no sea eso lo que quiera hacer. Lo que probablemente quiera hacer en este caso es encontrar todas las filas donde la columna de datos "gen" es igual al gen que desea. Por ejemplo:

df[df$gene=="0610007C21Rik",]

Si tienes varios genes diferentes, puedes hacer esto:

df[df$gene == c("0610007C21Rik","0610007L01Rik"),]

Si quisieras usar dplyrdesde tidyverse, también podrías hacer esto

library(dplyr)
df %>%
filter(gene=="0610007C21Rik")

No hay comentarios.:

Publicar un comentario

Flutter: error de rango al acceder a la respuesta JSON

Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...