为什么在转换日期列的过程中,R代码会给我这个特定的错误消息?
我在RStudio中使用R。我的数据集来自一个只有两个变量的csv文件,即日期和价格(摘录如下所示): 数据持续到2017年7月13日 以下是R代码:为什么在转换日期列的过程中,R代码会给我这个特定的错误消息?,r,date,R,Date,我在RStudio中使用R。我的数据集来自一个只有两个变量的csv文件,即日期和价格(摘录如下所示): 数据持续到2017年7月13日 以下是R代码: test1.data <- read.csv("test1.csv", as.is=TRUE) test1.data <- transform(test1.data, week = as.POSIXlt(Date)$yday %/% 7 + 1, wday
test1.data <- read.csv("test1.csv", as.is=TRUE)
test1.data <- transform(test1.data,
week = as.POSIXlt(Date)$yday %/% 7 + 1,
wday = as.POSIXlt(Date)$wday,
year = as.POSIXlt(Date)$year + 1900)
test1.data可能使用strftime
对您有效:
# create Data
test1.data <- data.frame(Date=c('2016-12-01','2016-12-02','2016-12-03'),Price=c(25,16,20))
test1.data <- transform(test1.data,
week = strftime(Date,format = '%V'),
wday = strftime(Date,format = '%a'),
year = strftime(Date,format = '%Y'))
在本例中,我假设您想要一年中的一周、一周和一年。您可以在?strftime
上看到更多选项。可能有一些元素的格式不好,或者与不存在的日期关联。也许可以尝试filter(test1.data,is.na(as.POSIXlt(Date))
来查看。我运行了这段代码并得到以下错误消息:test1checkD'oh。好吧,我猜我的建议不好。。。嗯,也许用过滤!grepl(“\\d{4}-\\d{2}-\\d{2}”,日期)
。没有具体的例子很难诊断。这里提供了一般指导:谢谢,但我收到了相同的错误消息:as.POSIXlt.character(x,tz=tz)中的错误:字符串不是标准的明确格式您的Date
列中的值都严格遵循YYYY-MM-DD方案?因为这是明确无误的。你试过运行我的代码吗?谢谢你告诉我这个。有些日期不符合yyyy-mm-dd格式!
# create Data
test1.data <- data.frame(Date=c('2016-12-01','2016-12-02','2016-12-03'),Price=c(25,16,20))
test1.data <- transform(test1.data,
week = strftime(Date,format = '%V'),
wday = strftime(Date,format = '%a'),
year = strftime(Date,format = '%Y'))
> test1.data
Date Price week wday year
1 2016-12-01 25 48 Thu 2016
2 2016-12-02 16 48 Fri 2016
3 2016-12-03 20 48 Sat 2016