【问题标题】:use dplyr to get values of a column [duplicate]使用 dplyr 获取列的值[重复]
【发布时间】:2015-07-02 04:01:44
【问题描述】:

我想让 dplyr 返回一个字符向量而不是数据框。有没有简单的方法可以做到这一点?

#example data frame 
df <- data.frame( x=c('a','b','c','d','e','f','g','h'), 
                  y=c('a','a','b','b','c','c','d','d'),
                  z=c('a','a','a','a','a','a','d','d'),
                  stringsAsFactors = FALSE)


#desired output
unique(df$z)
[1] "a" "d"

#dplys's output
df %>% 
  select(z) %>%
  unique() 

z
1 a
7 d

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    试试

    library(dplyr)
    df %>%
       select(z) %>%
       unique() %>% 
       .$z
    #[1] "a" "d"
    

    或使用magrittr

    library(magrittr)
    df %>%
      select(z) %>%
      unique() %>%
      use_series(z)
    #[1] "a" "d"
    

    【讨论】:

    • 感谢@akrun use_series 正是医生所要求的
    • @zach 没问题。很高兴为您提供帮助。
    • @akrun,假设z 是字符串列名,例如z &lt;- "x" - 那么我如何子集值呢?
    • @Taz 你可以使用select_at df %&gt;% select_at(z) 或评估df %&gt;% select(!! z)
    • @akrun 我将获得 1x1 数据帧 - 而不是该 1x1 数据帧的值。不过我已经想通了:df %&gt;% select(z) %&gt;% unique() %&gt;% use_series(z) %&gt;% .[[1]]
    猜你喜欢
    • 2021-11-28
    • 2023-03-09
    • 2022-01-14
    • 2018-11-05
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 2020-11-02
    • 2016-10-04
    相关资源
    最近更新 更多