R 尝试在 %>% 中使用 as.Date 时出错
R Error trying to use as.Date in a %>%
我最近了解了管道操作员 %>%,我正在尝试将其纳入我一直从事的一些项目中。但是,当我尝试在管道中使用 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 很可能不是您在管道中使用的命令。
提前感谢您的任何想法或建议!
我认为您必须向管道运算符添加 mutate。但是,我不知道在这种情况下管道运算符是否比简单的 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"))
在这种情况下,您希望使用 %$%
运算符直接访问列:
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"))
我最近了解了管道操作员 %>%,我正在尝试将其纳入我一直从事的一些项目中。但是,当我尝试在管道中使用 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 很可能不是您在管道中使用的命令。
提前感谢您的任何想法或建议!
我认为您必须向管道运算符添加 mutate。但是,我不知道在这种情况下管道运算符是否比简单的 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"))
在这种情况下,您希望使用 %$%
运算符直接访问列:
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"))