首页 > 解决方案 > R将文本强制转换为数字

问题描述

我在 R 中导入一个 excel 文件。该文件包含两个日期列。在 excel 中,这些格式为日期 (dd-mm-yyyy)。

在 R 中导入文件,我收到以下警告消息:

In read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet,  :
  Coercing text to numeric in D1497 / R1497C4: '0.0000'

值为 42710、42678 等。

我需要将列用作日期。

我尝试使用类似as.Date(),mdy()但是的命令,结果,这些值随后被 NA 替换。

从包 tidyxl 中,我尝试了 is_date_format 但我得到了 FALSE。

你可以帮帮我吗?你有什么建议吗?

太感谢了

PS:这里是excel中两列的一些值:

from_unixtime('%d/%m/%Y')   from_unixtime('%d/%m/%Y')
 06/12/2016                      06/12/2018
 04/11/2016                      08/09/2017
 04/11/2016                      08/09/2017
 01/12/2016                      08/09/2017
 15/02/2017                      08/09/2017

标签: rdatetextnumeric

解决方案


在 R 中,日期变量存储为数字向量。所以 R 使用一些原始日期,如01.01.1900(dmy) 并根据数字在日期中添加天数。一个简单的例子:数字1将是02.01.1900,因为这是1在 origin 之后的一天01.01.1900。例如,请参见此处。

你可以做的是尝试上面提到的起源。那将是:

dates <- as.Date(your_vector_with_numbers, origin= "1900-01-01")

但我实际上更喜欢 Grada Gukovic 可能暗示的解决方案,我会首先尝试正确处理日期。为了帮助您,我们需要知道您如何加载数据。


推荐阅读