选择基于另一个变量的列表元素?

时间:2019-02-18 17:05:01

标签: r list date

我想根据数据框中的日期列选择内置R列表的元素month.abb(这是月份缩写的列表)。

这就是我想要做的:

library(tidyverse)
library(lubridate)

my_data <- tibble(date = c("2018-12-12", "2017-11-10")) %>%
 mutate(date = as_date(date))

my_data %>%
 mutate(month = month.abb[[month(date)]])

我得到以下错误: Error in muate_impl(.data, dots) : Evaluation error: attempt to select more than one element in a vectorIndex。我想这意味着我正在尝试选择具有整个向量的列表元素,而我可能需要的是一些映射功能,例如lapply(),尽管我不确定在这种情况下如何实现。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

问题出在[[[之间。根据{{​​1}},

  

[,[[和$]之间最重要的区别是[可以选择多个元素,而另两个可以选择单个元素。

在这里,我们有多个元素作为索引

?Extract

该错误并非特定于my_data %>% mutate(month = month.abb[month(date)]) 。基本上就是索引

tidyverse
  

c(2,4,7,5)[[1:3]]中的错误:尝试选择多个   vectorIndex中的元素

c(2, 4, 7, 5)[[1:3]]