Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在转换日期列的过程中,R代码会给我这个特定的错误消息?_R_Date - Fatal编程技术网

为什么在转换日期列的过程中,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

我在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 = 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