R:在dplyr::mutate()中求值时,具有不同输出的相同函数
我是新手。现在我遇到了一个问题: 假设我们有字符“2-Jan-01”: 运行函数时,我们得到:R:在dplyr::mutate()中求值时,具有不同输出的相同函数,r,dplyr,tidyverse,R,Dplyr,Tidyverse,我是新手。现在我遇到了一个问题: 假设我们有字符“2-Jan-01”: 运行函数时,我们得到: as.Date("2-Jan-01", tryFormats = c("%y-%b-%d", "%b-%y-%d")) [1] "2002-01-01" 但是,当我使用命令mutate时: df %>% mutate(birth_date=as.Date(as.character(birth), tryFormats = c("%y-%b-%d", "%b-%y-%d"))) 转换条目2-
as.Date("2-Jan-01", tryFormats = c("%y-%b-%d", "%b-%y-%d"))
[1] "2002-01-01"
但是,当我使用命令mutate时:
df %>%
mutate(birth_date=as.Date(as.character(birth),
tryFormats = c("%y-%b-%d", "%b-%y-%d")))
转换条目2-Jan-01
时,我得到的是NA
,而不是2002-01-01
我不明白为什么同一个函数会在mutate内外对不同的值求值。有人能解释一下吗?提前谢谢你 您的代码对我来说运行良好
librayr(dplyr)
df <- tibble(
birth = "2-Jan-01"
)
我得到:
birth birth_date
<chr> <date>
1 2-Jan-01 2002-01-01
这给出了相同的结果
如果不想保留旧的“birth”列,可以使用transmute()
:
df %>%
transmute(
birth_date = as.Date(
birth,
tryFormats = c("%y-%b-%d", "%b-%y-%d")
))
其中:
birth_date
<date>
1 2002-01-01
出生日期
1 2002-01-01
我假设birth
是一个字符串,等于“2-Jan-01”?这似乎是暗示,但我不知道为什么你需要将其转换为字符。。。您能分享什么dput(出生)
输出吗?
df %>%
transmute(
birth_date = as.Date(
birth,
tryFormats = c("%y-%b-%d", "%b-%y-%d")
))
birth_date
<date>
1 2002-01-01