Выбрать элемент списка на основе другой переменной? - PullRequest
0 голосов
/ 18 февраля 2019

Я бы хотел выбрать элемент встроенного списка 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 голосов
/ 18 февраля 2019

Проблема с разницей [[ и [.Согласно ?Extract,

Самое важное различие между [, [[и $ состоит в том, что [может выбрать более одного элемента, тогда как другие два выбирают один элемент.

Здесь у нас есть более одного элемента в качестве индекса

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

Ошибка не характерна для tidyverse.Это в основном индексирование

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

Ошибка в c (2, 4, 7, 5) [[1: 3]]: попытка выбрать более одного элемента в vectorIndex

c(2, 4, 7, 5)[1:3]
#[1] 2 4 7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...