J'ai le tableau suivant:
> some.table
Week
Person 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Anna 0 1 0 1 1 1 0 0 2 1 1 0 0 2
Cloe 0 1 1 1 1 1 0 0 0 0 0 1 2 0
Heather 1 0 0 2 1 1 0 1 1 1 2 1 2 0
Samantha 0 0 3 1 1 2 1 0 0 0 0 0 0 0
> str(some.table)
'table' int [1:6, 1:14] 0 0 1 0 0 1 1 1 0 0 ...
- attr(*, "dimnames")=List of 2
..$ Person: chr [1:6] "Anna" "Cloe" "Heather" "Samantha"
..$ Week : chr [1:14] "17" "18" "19" "20" ...
Comment extraire une ligne de ce tableau par le nom d'une personne?
Ex. pour quelque chose comme some.table $ Person ["Cloe"] Je voudrais obtenir un vecteur c (0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 2, 0) .
3 Réponses :
Cela devrait fonctionner, notez la virgule:
unname(x[ "4", ]) # [1] 1 8 2
Voici un exemple reproductible:
x <- with(mtcars, table(cyl, gear)) x # gear # cyl 3 4 5 # 4 1 8 2 # 6 2 4 1 # 8 12 0 2 x[ "4", ] # 3 4 5 # 1 8 2
Nous pouvons supprimer les noms de colonnes en utilisant unname:
some.table["Cloe", ]
C'est un objet table , donc soit convertissez en data.frame et faites l'extraction. Les "Person", "Week" sont l'attribut names du dimnames
data(mtcars)
some.table <- table(mtcars$cyl, mtcars$vs)
names(dimnames(some.table)) <- list("mpg", "vs")
subset(as.data.frame(some.table), mpg == 4)$Freq
#[1] 1 10
En utilisant un exemple reproductible avec mtcars
subset(as.data.frame(some.table), Person == "Cloe")$Freq
Essayez some.table ["Cloe",]