2016-02-25 12 views
5

Come si può estrarre una singola riga da un tbl_df come vettore? sottoinsiemi semplice con [] parentesi produce un 1-fila tbl_df:Estrai una singola riga dplyr tbl_df come un vettore

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 

un problema simile a Extract a dplyr tbl column as a vector, ma con (credo) alcune soluzioni diverse.

+3

... o 'non elencati (dat [2,])' –

+0

Grazie entrambi. Risulta che la mia domanda deriva dal non rendermi conto che il prodotto di 'mtcars [2,]' è un 'data.frame', poiché le operazioni future che faccio come' paste (...) 'lo costringono a un vettore. Ho pensato erroneamente che fosse già un vettore. Ora vedo che posso anche "incollare (...)" su un 'tbl_df' a 1 riga e ottenere un vettore. Con quella comprensione, penso che questo sia un duplicato. Spero che almeno aiuti gli altri che vengono espulsi vedendo un 'tbl_df'. 'unlist (dat [2,])' è quello che sono andato con. –

risposta

4

Utilizzando la dplyr%>% operatore

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

Oppure possiamo usare c con recursive=TRUE

tbl_df(mtcars) %>% 
      slice(2) %>% 
      c(., recursive=TRUE) %>% 
      unname 
Problemi correlati