为什么lubridate mdy()在lappy()中返回错误?
我试图理解为什么我的为什么lubridate mdy()在lappy()中返回错误?,r,dplyr,lubridate,R,Dplyr,Lubridate,我试图理解为什么我的lubridatemdy()函数在lappy()中返回错误,以转换dplyr管道中的日期。我已经用类似的方法在其他数据上使用了mdy(),但还没有看到这个问题。我对R比较陌生,但到目前为止,我还能够解决其他问题。我不太熟悉如何使用lappy() 我的数据是一个大型的.csv水质数据,我正在对其进行子集设置,以简单地显示有问题的数据 library(dplyr) library(lubridate) require(lubridate) wq.all<-as.data.
lubridate
mdy()
函数在lappy()
中返回错误,以转换dplyr
管道中的日期。我已经用类似的方法在其他数据上使用了mdy()
,但还没有看到这个问题。我对R比较陌生,但到目前为止,我还能够解决其他问题。我不太熟悉如何使用lappy()
我的数据是一个大型的.csv水质数据,我正在对其进行子集设置,以简单地显示有问题的数据
library(dplyr)
library(lubridate)
require(lubridate)
wq.all<-as.data.frame(read.csv('C:/WQdata.csv',header=TRUE,stringsAsFactors = FALSE))
test.wq<-wq.all[1:5,12:13]
class(test.wq)
[1] "data.frame"
mode(test.wq)
[1] "list"
str(test.wq)
'data.frame': 5 obs. of 2 variables:
$ YearMonth : chr "2019-07" "2019-06" "2019-05" "2019-04" ...
$ SampleTime: chr "07/09/2019 14:44" "06/10/2019 14:17" "05/22/2019 14:31" "04/08/2019 14:15" ...
但这会返回一个错误:
Error in lapply(list(...), .num_to_date) : object 'SampleDate' not found
如果我只使用mutate()
这一切似乎都很好,并为我提供了新的SampleDate
专栏:
wq.date<-test.wq%>%
mutate(SampleDate=str_sub(test.wq[[2]],start=0,end=10))
head(wq.date)
YearMonth SampleTime SampleDate
1 2019-07 07/09/2019 14:44 07/09/2019
2 2019-06 06/10/2019 14:17 06/10/2019
3 2019-05 05/22/2019 14:31 05/22/2019
4 2019-04 04/08/2019 14:15 04/08/2019
5 2019-03 03/13/2019 14:19 03/13/2019
str(wq.date)
'data.frame': 5 obs. of 3 variables:
$ YearMonth : chr "2019-07" "2019-06" "2019-05" "2019-04" ...
$ SampleTime: chr "07/09/2019 14:44" "06/10/2019 14:17" "05/22/2019 14:31" "04/08/2019 14:15" ...
$ SampleDate: chr "07/09/2019" "06/10/2019" "05/22/2019" "04/08/2019" ...
wq.date%
突变(SampleDate=str_sub(test.wq[[2]],start=0,end=10))
总目(wq.日期)
年月采样时间采样日期
1 2019-07 07/09/2019 14:44 07/09/2019
2 2019-06 06/10/2019 14:17 06/10/2019
3 2019-05 05/22/2019 14:31 05/22/2019
4 2019-04 04/08/2019 14:15 04/08/2019
5 2019-03 03/13/2019 14:19 03/13/2019
str(wq.日期)
“data.frame”:5个obs。共有3个变量:
$YearMonth:chr“2019-07”“2019-06”“2019-05”“2019-04”。。。
$SampleTime:chr“07/09/2019 14:44”“06/10/2019 14:17”“05/22/2019 14:31”“04/08/2019 14:15”。。。
$SampleDate:chr“07/09/2019”“06/10/2019”“05/22/2019”“04/08/2019”。。。
因此,它似乎只有在我尝试使用mdy()
强制时才会导致错误,即使SampleDate
显然存在,并且我相信我正确引用了它。
我已经研究了其他的帖子和文章,但似乎都没有涉及到这个问题
想法?非常感谢 我们需要将其放入
mutate
或提取列中,否则,它将在整个data.frame上应用该函数。根据?mdy
将存储在字符和数字向量中的日期转换为日期或POSIXct对象
因此,如果输入不是向量
,它将不起作用
library(dplyr)
library(lubridate)
library(stringr)
test.wq%>%
mutate(SampleDate=str_sub(SampleTime,start=0,end=10))%>%
mutate(date = mdy(SampleDate))
我们需要将它放入
mutate
或提取列中,否则,它将在整个data.frame上应用该函数。根据?mdy
将存储在字符和数字向量中的日期转换为日期或POSIXct对象
因此,如果输入不是向量
,它将不起作用
library(dplyr)
library(lubridate)
library(stringr)
test.wq%>%
mutate(SampleDate=str_sub(SampleTime,start=0,end=10))%>%
mutate(date = mdy(SampleDate))
您正在对数据帧而不是向量调用
mdy
。这或多或少是一个输入错误,我可以看出您的变量是char
。将它们格式化为日期。您在数据帧而不是向量上调用的wq.date$SampleDatemdy
。这或多或少是一个输入错误,我可以看出您的变量是char
。将它们格式化为日期。沿着wq.date$SampleDate的东西