2013-04-03 6 views
0

Dans cet exempleaccéder aux valeurs individuelles dans data.frame R

cars <- c("FORD", "GM") 
price <- list(c(1000, 2000, 3000), c(2000, 500, 1000)) 
myDF <- data.frame(cars=cars, price=cbind(price)) 

Comment puis-je accéder aux valeurs individuelles de prix, par exemple, 500:

quelque chose comme myDF$price[2][2]

Merci beaucoup.


liés à cette question:column with multiple values in data.frame

+0

Sans une réponse, mais je soupçonne que vous rencontrez un problème avec les données organisation. Pensez à regarder reshape2 et au concept général de [stacking/unstacking data] (http://en.wikipedia.org/wiki/Wide_and_narrow_data). – mlt

Répondre

2

Voici trois options:

> myDF[[2]][[2]][2] 
[1] 500 
> myDF[[c(2, 2, 2)]] 
[1] 500 
> myDF$price[[2]][2] ## This is like what you were after... 
[1] 500 

Tous disent essentiellement, obtenir la deuxième colonne, puis obtenir le second vecteur de la deuxième colonne, et ensuite obtenir le deuxième élément dans le vecteur. La troisième option semble être ce que vous essayez de faire, mais [[ est nécessaire dans ce cas, pas [.

1

[Je ne peux pas commenter si je dois donner une réponse]

Une façon plus simple de faire ce que vous essayez est

price <- data.frame(FORD=c(1000, 2000, 3000), GM=c(2000, 500, 1000)) 
price$GM[2] 
+0

merci pour votre commentaire, cependant je ne suis pas sûr si c'est la meilleure approche car chaque cru en général a plus de deux entrées (voiture, couleur, prix), ce que vous suggérez dans ce cas, par exemple: 'F couleur 1000 , 2000, 3000' - trois colonnes. – Sergey

Questions connexes