我想根据数据框中的日期列选择内置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()
,尽管我不确定在这种情况下如何实现。有什么想法吗?
答案 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]]