gpt4 book ai didi

r - 将 data.frame 中的列转换为日期

转载 作者:行者123 更新时间:2023-12-04 23:18:38 25 4
gpt4 key购买 nike

我的数据框

a1 <- c("a","a","b","b","c","d","e","e")
b2 <- c("01.01.2015", "02.02.2015", "14.02.2012", "16.08.2008", "17.06.2003", "31.01.2015", "07.01.2022", "09.05.2001")
c3 <- c("1a", "2b", "3c", "4d", "5e", "6f", "7g", "8h")
d3 <- c(1:8)

df2 <- data.frame(a1,b2,c3,d3, stringsAsFactors = F)

我的代码。
library(dplyr)
library(magrittr)

test <- df2 %>%
group_by(a1) %>%
as.Date(b2, format = "%d.%m.%Y")

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



好吧,我试过没有管道:
df$b2 <- as.Date(df$b2, format = "%d.%m.%Y")

Error in df$b2 : object of type 'closure' is not subsettable



第一:为什么我会收到两条不同的错误消息,因为我(就我的理解)正在做同样的事情?

其次,为什么我不能将我的专栏转换为日期?!

我可能应该补充一点,我知道使用 mutate 将列更改为 date 格式。但我想知道为什么我的方法不起作用。

最佳答案

mutate 中进行转换

df2 %>%
group_by(a1) %>%
mutate(b2=as.Date(b2, format = "%d.%m.%Y"))
# a1 b2 c3 d3
# (chr) (date) (chr) (int)
#1 a 2015-01-01 1a 1
#2 a 2015-02-02 2b 2
#3 b 2012-02-14 3c 3
#4 b 2008-08-16 4d 4
#5 c 2003-06-17 5e 5
#6 d 2015-01-31 6f 6
#7 e 2022-01-07 7g 7
#8 e 2001-05-09 8h 8

如果我们只需要做转换,我们不需要按'a1'分组。
mutate(df2, b2= as.Date(b2, format= "%d.%m.%Y")

通过使用 %<>% 中的 magrittr 运算符,我们可以就地转换。
df2 %<>%
mutate(b2= as.Date(b2, format= "%d.%m.%Y")

关于r - 将 data.frame 中的列转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33408636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com