![](/img/trans.png)
[英]How to convert a column in a data.frame from POSIXct to date in R
[英]Convert column in data.frame to date
我的数据框
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")
as.Date.default(。,b2,format =“%d。%m。%Y”)中的错误:不知道如何转换'。' 将“日期”分类
好吧,我尝试了没有管道:
df$b2 <- as.Date(df$b2, format = "%d.%m.%Y")
df $ b2中的错误:“关闭”类型的对象不可子集化
第一:由于我(据我所知)正在做同样的事情,为什么会收到两个不同的错误消息?
第二,为什么我不能将列转换为日期?
我可能还应该补充一点,我知道使用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")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.