name - subset r
Cómo obtener una fila de R data.frame (4)
La indexación lógica es muy R-ish. Tratar:
x[ x$A ==5 & x$B==4.25 & x$C==4.5 , ]
O:
subset( x, A ==5 & B==4.25 & C==4.5 )
Tengo un data.frame con encabezados de columna.
¿Cómo puedo obtener una fila específica del data.frame como una lista (con los encabezados de las columnas como claves para la lista)?
Específicamente, mi data.frame es
A B C 1 5 4.25 4.5 2 3.5 4 2.5 3 3.25 4 4 4 4.25 4.5 2.25 5 1.5 4.5 3
Y quiero obtener una fila que sea el equivalente de
> c(a=5, b=4.25, c=4.5)
a b c
5.0 4.25 4.5
Si no conoce el número de fila pero conoce algunos valores, puede usar un subconjunto
x <- structure(list(A = c(5, 3.5, 3.25, 4.25, 1.5 ),
B = c(4.25, 4, 4, 4.5, 4.5 ),
C = c(4.5, 2.5, 4, 2.25, 3 )
),
.Names = c("A", "B", "C"),
class = "data.frame",
row.names = c(NA, -5L)
)
subset(x, A ==5 & B==4.25 & C==4.5)
Tratar:
> d <- data.frame(a=1:3, b=4:6, c=7:9)
> d
a b c
1 1 4 7
2 2 5 8
3 3 6 9
> d[1, ]
a b c
1 1 4 7
> d[1, ][''a'']
a
1 1
x[r,]
donde r es la fila que le interesa. Pruebe esto, por ejemplo:
#Add your data
x <- structure(list(A = c(5, 3.5, 3.25, 4.25, 1.5 ),
B = c(4.25, 4, 4, 4.5, 4.5 ),
C = c(4.5, 2.5, 4, 2.25, 3 )
),
.Names = c("A", "B", "C"),
class = "data.frame",
row.names = c(NA, -5L)
)
#The vector your result should match
y<-c(A=5, B=4.25, C=4.5)
#Test that the items in the row match the vector you wanted
x[1,]==y
Esta página (de este sitio útil ) tiene buena información sobre indexación como esta.