如何在R中将时间变量转换为数字变量



我有一个日期格式的文件,其中包含以下格式的日期格式列

48    # April 8th, 2013
712   # July 12th, 2013

所有这些日期都是2013年的默认日期,现在我想创建一个列,指定自2013年4月1日以来的天数,4月8日为8。

我应该如何继续?我应该使用2013年的fill作为前缀,然后使用R中的as.Date函数?但我似乎应该用"/"代替"\"

好的,我想总结一下@rawr的解决方案,以便其他人可以遵循

首先,我需要从"\"更改为"//",以读取R 的格式要求

其次,我需要在字符串的末尾附加2013,这里的技巧是在执行dates <- paste0(dates, '\2013')之前先执行paste0(dates, "\")(我自己想好了!),以确保在2013之前有两个"\",否则在2013之前总是只有一个转义符。

第三,执行as.Date("6\\4\\2013", format = '%m\\%d\\%Y'),或者类似的操作。

是一个转义字符,所以R不喜欢48,所以您需要对单个 使用\

> cat('\')

这里有一种方法:

dates
# [1] "4\8"  "7\12"
dates <- paste0(dates, '\2013')
# [1] "4\8\2013"  "7\12\2013"
as.Date(dates, format = '%m\%d\%Y') - as.Date('2013-04-01') + 1
# Time differences in days
# [1]   8 103
as.numeric(as.Date(dates, format = '%m\%d\%Y') - as.Date('2013-04-01') + 1)
# [1]   8 103

相关内容

  • 没有找到相关文章

最新更新