如何使用magrittr从数据帧中提取单个元素?

如何使用magrittr从数据帧中提取单个元素?,r,dplyr,purrr,magrittr,R,Dplyr,Purrr,Magrittr,这可能是一个简单的问题,但我无法找到答案。考虑这个简单的数据文件 library(dplyr) library(purrr) library(magrittr) dataframe <- data_frame(id = c(1,2,3,4), text = c("this is a this", "this is another",'hello','what???')) > dataframe # A tibble: 4 x 2

这可能是一个简单的问题,但我无法找到答案。考虑这个简单的数据文件

library(dplyr)
library(purrr)
library(magrittr)
dataframe <- data_frame(id = c(1,2,3,4),
                        text = c("this is a this", "this is another",'hello','what???'))

> dataframe
# A tibble: 4 x 2
     id            text
  <dbl>           <chr>
1     1  this is a this
2     2 this is another
3     3           hello
4     4         what???
但它不起作用。我能在这里做什么?

您可以尝试:

dataframe %>%
  filter(row_number() == 4) %>%
  pull(text)
您可以尝试:

dataframe %>%
  filter(row_number() == 4) %>%
  pull(text)
这项工作:

dataframe %>% select(text) %>% unlist() %>% .[4]
编辑:

这并不重要,但有更快的选择(来自穆迪的列表):

我喜欢(不在名单上):

平均162

这项工作:

dataframe %>% select(text) %>% unlist() %>% .[4]
编辑:

这并不重要,但有更快的选择(来自穆迪的列表):

我喜欢(不在名单上):


对于
magrittr
唯一的解决方案,您想要的平均值为162

dataframe %>% magrittr::use_series(text) %>% magrittr::extract(4)

对于
magrittr
唯一的解决方案,您需要

dataframe %>% magrittr::use_series(text) %>% magrittr::extract(4)

一些简短的可能性:

dataframe %$% text[4]
dataframe %>% {.$text[4]}
dataframe %>% .[[4,"text"]]
dataframe %>% `[[`(4,"text")
或者,如果您只想使用
magrittr
别名:

dataframe %>% extract2(4,"text")
dataframe %$% text %>% extract(4)
dataframe %>% extract2("text") %>% extract(4)
dataframe %>% use_series(text) %>% extract(4) # @Brian'ssolution
其他建议的解决方案并非纯粹的magrittr(使用
dplyr
):


一些简短的可能性:

dataframe %$% text[4]
dataframe %>% {.$text[4]}
dataframe %>% .[[4,"text"]]
dataframe %>% `[[`(4,"text")
或者,如果您只想使用
magrittr
别名:

dataframe %>% extract2(4,"text")
dataframe %$% text %>% extract(4)
dataframe %>% extract2("text") %>% extract(4)
dataframe %>% use_series(text) %>% extract(4) # @Brian'ssolution
其他建议的解决方案并非纯粹的magrittr(使用
dplyr
):


好吧,你总是可以像
dataframe%>%pull(text)%>%.[4]
@AndreyKolyadin一样工作!谢谢,但是你怎么会知道这些东西呢?记录在哪里?或者可能是
dataframe%>%pull(text)%%>%last()
@Sotos谢谢,但是获取最后一个元素是为了示例。我想任何第I个元素都可以被删除。这只是一个想法好吧,你总是可以像
dataframe%>%pull(text)%>%.[4]
@AndreyKolyadin工作!谢谢,但是你怎么会知道这些东西呢?记录在哪里?或者可能是
dataframe%>%pull(text)%%>%last()
@Sotos谢谢,但是获取最后一个元素是为了示例。我想任何第I个元素都可以被删除。只是一个想法谢谢!您知道
[4]
语法的文档在哪里吗?
只是
数据帧的占位符,因为它通过管道进行操作。您可以这样编写上述代码,并得到相同的结果
dataframe%%>%select(,text)%%>%unlist(.)%%>%.[4]
。最后的括号只是标准的R子集。谢谢!您知道
[4]
语法的文档在哪里吗?
只是
数据帧的占位符,因为它通过管道进行操作。您可以这样编写上述代码,并得到相同的结果
dataframe%%>%select(,text)%%>%unlist(.)%%>%.[4]
。末尾的括号只是标准的R子集。