/ / R Грешка при опит да се използва as.Date в%>% - r, тръбопровод, magrittr, as.date

R Грешка при опита да се използва като date.Array в%>% - r, piping, magrittr, as.date

Наскоро научих за тръбния оператор%>% и се опитвам да се включа в някои от проектите, по които работя. Въпреки това получавам грешка, когато се опитвам да използвам as.Date в тръбата.

пример

numbers <- c(1, 2, 3, 4, 5)
dates <- c("4/13/2017", "2/20/2017", "3/5/2017", "4/14/2017", "10/22/2017")
df <- data.frame(numbers, dates)
numbers      dates
1       1  4/13/2017
2       2  2/20/2017
3       3   3/5/2017
4       4  4/14/2017
5       5 10/22/2017

Обикновено това, което използвам е:

df$dates <- as.Date(df$dates, "%m/%d/%Y")

Когато се опитвах да го използвам в тръба, опитах:

df %>%
as.Date(dates, "%m/%d/%Y")

Но получите съобщение за грешка:

Error in as.Date.default(., dates, "%m/%d/%Y") :
do not know how to convert "." to class “Date”

Все още не съм супер запознат с тръбните оператори, така че е много вероятно as.Date да не е команда, която бихте използвали в тръба.

Благодаря предварително за всякакви мисли или предложения!

Отговори:

5 за отговор № 1

Мисля, че трябва да добавите мутиране към тръбния оператор. Обаче не знам дали в този случай тръбопроводният оператор е по-добър от просто df$dates <- as.Date(df$dates, "%m/%d/%Y")

library(dplyr)

numbers <- c(1, 2, 3, 4, 5)
dates <- c("4/13/2017", "2/20/2017", "3/5/2017", "4/14/2017", "10/22/2017")
df <- data.frame(numbers, dates)

df %>%
mutate(dates=as.Date(dates, "%m/%d/%Y"))

0 за отговор № 2

В този случай искате да използвате %$% оператор, който ви дава достъп до колони директно:

df %$% as.Date(dates, "%m/%d/%Y")
# [1] "2017-04-13" "2017-02-20" "2017-03-05" "2017-04-14" "2017-10-22"

Той е подобен на следния синтаксис with :

with(df,as.Date(dates, "%m/%d/%Y"))