我有一个这个数据集,我试图通过使用col_type规范解析日期
dailyActivityMerged <- read_csv("/cloud/project/Fitabase Data/dailyActivity_merged.csv",
col_types = list(
Id = col_double(),
ActivityDate = col_date(format = "%m %d %Y"),
TotalSteps = col_double(),
TotalDistance = col_double(),
TrackerDistance = col_double(),
LoggedActivitiesDistance = col_double(),
VeryActiveDistance = col_double(),
ModeratelyActiveDistance = col_double(),
LightActiveDistance = col_double(),
SedentaryActiveDistance = col_double(),
VeryActiveMinutes = col_double(),
FairlyActiveMinutes = col_double(),
LightlyActiveMinutes = col_double(),
SedentaryMinutes = col_double(),
Calories = col_double()
))
但我得到一个错误,所有日期都被转换为NA在ActivityDate列。
你能告诉我为什么会发生这种情况,以及如何以日期格式获得日期吗?
原因是按照链接
中显示的数据列格式,格式应该是%m/%d/%Y
而不是%m %d %Y
。library(readr)
dailyActivityMerged <- read_csv("/cloud/project/Fitabase Data/dailyActivity_merged.csv",
col_types = list(
Id = col_double(),
ActivityDate = col_date(format = "%m/%d/%Y"),
TotalSteps = col_double(),
TotalDistance = col_double(),
TrackerDistance = col_double(),
LoggedActivitiesDistance = col_double(),
VeryActiveDistance = col_double(),
ModeratelyActiveDistance = col_double(),
LightActiveDistance = col_double(),
SedentaryActiveDistance = col_double(),
VeryActiveMinutes = col_double(),
FairlyActiveMinutes = col_double(),
LightlyActiveMinutes = col_double(),
SedentaryMinutes = col_double(),
Calories = col_double()
))
-现在检查结构
> str(dailyActivityMerged)
spec_tbl_df [940 × 15] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
$ Id : num [1:940] 1.5e+09 1.5e+09 1.5e+09 1.5e+09 1.5e+09 ...
$ ActivityDate : Date[1:940], format: "2016-04-12" "2016-04-13" "2016-04-14" "2016-04-15" ...
$ TotalSteps : num [1:940] 13162 10735 10460 9762 12669 ...
$ TotalDistance : num [1:940] 8.5 6.97 6.74 6.28 8.16 ...
$ TrackerDistance : num [1:940] 8.5 6.97 6.74 6.28 8.16 ...
$ LoggedActivitiesDistance: num [1:940] 0 0 0 0 0 0 0 0 0 0 ...
$ VeryActiveDistance : num [1:940] 1.88 1.57 2.44 2.14 2.71 ...
$ ModeratelyActiveDistance: num [1:940] 0.55 0.69 0.4 1.26 0.41 ...
$ LightActiveDistance : num [1:940] 6.06 4.71 3.91 2.83 5.04 ...
$ SedentaryActiveDistance : num [1:940] 0 0 0 0 0 0 0 0 0 0 ...
$ VeryActiveMinutes : num [1:940] 25 21 30 29 36 38 42 50 28 19 ...
$ FairlyActiveMinutes : num [1:940] 13 19 11 34 10 20 16 31 12 8 ...
$ LightlyActiveMinutes : num [1:940] 328 217 181 209 221 164 233 264 205 211 ...
$ SedentaryMinutes : num [1:940] 728 776 1218 726 773 ...
$ Calories : num [1:940] 1985 1797 1776 1745 1863 ...
- attr(*, "spec")=
.. cols(
.. Id = col_double(),
.. ActivityDate = col_date(format = "%m/%d/%Y"),
.. TotalSteps = col_double(),
.. TotalDistance = col_double(),
.. TrackerDistance = col_double(),
.. LoggedActivitiesDistance = col_double(),
.. VeryActiveDistance = col_double(),
.. ModeratelyActiveDistance = col_double(),
.. LightActiveDistance = col_double(),
.. SedentaryActiveDistance = col_double(),
.. VeryActiveMinutes = col_double(),
.. FairlyActiveMinutes = col_double(),
.. LightlyActiveMinutes = col_double(),
.. SedentaryMinutes = col_double(),
.. Calories = col_double()
.. )