将单个dplyr tbl_df行提取为向量

时间:2016-02-25 03:39:32

标签: r dplyr

如何从tbl_df中提取单行作为向量?使用[]括号进行简单的子集化会产生1行tbl_df

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

Extract a dplyr tbl column as a vector类似的问题,但(我认为)有一些不同的解决方案。

2 个答案:

答案 0 :(得分:14)

使用library(dplyr) as_tibble(mtcars) %>% slice(2) %>% unlist(., use.names=FALSE) c运算符

recursive=TRUE

或者我们可以将as_tibble(mtcars) %>% slice(2) %>% c(., recursive=TRUE) %>% unname 与{{1}}

一起使用
{{1}}

答案 1 :(得分:3)

来自Introduction to dplyr:“所有dplyr函数都将数据帧(或小标题)作为第一个参数。”因此,无需将mtcars转换为小标题。此外,as.numeric()unlist(., use.names = FALSE)更为简洁。

library(dplyr)
mtcars %>%
  slice(2) %>%
  as.numeric()