web-dev-qa-db-fra.com

Comment accéder à des éléments uniques dans une table dans R

Comment récupérer des éléments d'une table dans R .

Mes données ressemblent à ceci:

         V1     V2
1      12.448 13.919
2      22.242  4.606
3      24.509  0.176

etc...

Je veux simplement saisir des éléments individuellement. Je suis confus avec toute la terminologie R comme les vecteurs, et je veux juste pouvoir accéder aux éléments individuels.

Y a-t-il une fonction où je peux faire comme data[v1][1] et obtenir l'élément dans la ligne 1 de la colonne 1?

26
wfbarksdale

C'est tellement basique que je me demande quel livre vous utilisez pour étudier? Essayer

data[1, "V1"]  # row first, quoted column name second, and case does matter

Je suis impénitent dans ma formulation malgré le récent downvote. Il y a une tonne de matériel d'introduction gratuit pour les débutants dans R: https://cran.r-project.org/other-docs.html

31
42-

?"[" couvre à peu près les différentes façons d'accéder aux éléments des choses.

Sous utilisation, il les répertorie:

x[i]
x[i, j, ... , drop = TRUE]
x[[i, exact = TRUE]]
x[[i, j, ..., exact = TRUE]]
x$name
getElement(object, name)

x[i] <- value
x[i, j, ...] <- value
x[[i]] <- value
x$i <- value

Le deuxième élément est suffisant pour votre objectif

Sous Arguments, il indique qu'avec [ les arguments i et j peuvent être numériques, caractères ou logiques

Donc, ces travaux:

data[1,1]
data[1,"V1"]

Comme cela:

data$V1[1]

et en gardant à l'esprit une trame de données est une liste de vecteurs:

data[[1]][1]
data[["V1"]][1]

fonctionnera également les deux.

Voilà donc quelques choses à faire. Je vous suggère de taper les exemples au bas de la page d'aide une ligne à la fois (oui, en fait, taper le tout sur une ligne à la fois et voir ce qu'ils font tous, vous ramasserez des trucs très rapidement et le dactylographier plutôt que copypasting est un élément important pour aider à le sauvegarder dans la mémoire.)

16
Glen_b

Peut-être pas aussi parfait que ceux ci-dessus, mais je suppose que c'est ce que vous cherchiez.

data[1:1,3:3]    #works with positive integers
data[1:1, -3:-3] #does not work, gives the entire 1st row without the 3rd element
data[i:i,j:j]    #given that i and j are positive integers

Ici, l'indexation fonctionnera à partir de 1, c'est-à-dire,

data[1:1,1:1]    #means the top-leftmost element
1
Sudutt Harne