2016-02-25 19 views
5

Wie kann man eine einzelne Zeile aus einem tbl_df als Vektor extrahieren? Einfache subsetting mit [] Klammern ergibt sich eine 1-Reihe tbl_df:Extrahieren Sie eine einzelne dplyr tbl_df Zeile als Vektor

library(dplyr) 
dat <- as_data_frame(mtcars) 

dat[2, ] 

Source: local data frame [1 x 11] 

    mpg cyl disp hp drat wt qsec vs am gear carb 
    (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) 
1 21  6 160 110 3.9 2.875 17.02  0  1  4  4 

Ein ähnliches Problem zu Extract a dplyr tbl column as a vector, aber mit (glaube ich) einige verschiedene Lösungen.

+3

verwenden ... oder 'fehlenden oder (dat [2])' –

+0

Dank beides. Es stellt sich heraus, dass meine Frage nicht darauf zurückzuführen ist, dass das Produkt von 'mtcars [2,]' ein 'dat.frame' ist, da zukünftige Operationen, die ich dazu mache,' paste (...) 'zu einem Vektor erzwingen. Ich dachte fälschlicherweise, dass es bereits ein Vektor war. Jetzt sehe ich, dass ich auch '(...)' auf ein 1-zeiliges 'tbl_df' einfügen und einen Vektor bekommen kann. Mit diesem Verständnis denke ich, dass dies ein Duplikat ist. Hoffe, es wird zumindest anderen helfen, die durch das Sehen eines 'tbl_df' abgeworfen werden. 'unlist (dat [2,])' ist das, womit ich gegangen bin. –

Antwort

4

Mit dem dplyr%>% Operator

library(dplyr) 
tbl_df(mtcars) %>% 
      slice(2) %>% 
      unlist(., use.names=FALSE) 

Oder wir können c mit recursive=TRUE

tbl_df(mtcars) %>% 
      slice(2) %>% 
      c(., recursive=TRUE) %>% 
      unname 
Verwandte Themen