【问题标题】:Convert from character to date format从字符转换为日期格式
【发布时间】:2019-04-08 22:07:45
【问题描述】:

这个问题有很多答案,但我似乎找不到我的问题的解决方案。 我已将 2009 年 3 月 4 日至 2019 年 4 月 4 日的 GOOGLE 每日股票数据复制到 Excel。不仅是日期字符的格式,而且还有多种格式。我无法将其转换为正确的格式。

有人可以帮忙提供正确的代码吗?

This is the site from where I have copied

我知道会有更简单的方法,但只是为了了解如何做到这一点,我问这个问题。

这是代码:

> google <- read_excel("Mappe1.xlsx")
> head(google)
# A tibble: 6 x 6
  DATE      OPEN     `CLOSING PRICE` `DAILY HIGH` `DAILY LOW` `VOLUME (PCS.)`   
  <chr>     <chr>    <chr>           <chr>        <chr>       <chr>             
1 43528     1,208.28 1,205.92        1,216.30     1,201.00    406.91800000000001
2 43500     1,195.32 1,200.49        1,201.17     1,185.82    273.697           
3 43469     1,182.00 1,194.43        1,196.49     1,182.00    428.96100000000001
4 3/29/2019 1,174.90 1,173.31        1,178.42     1,163.00    536.81899999999996
5 3/28/2019 1,168.72 1,168.49        1,171.55     1,159.70    348.24299999999999
6 3/27/2019 1,185.50 1,173.02        1,187.10     1,159.37    489.28500000000003

【问题讨论】:

  • 那么"43528" 应该是什么日期?
  • 是日期“2019/04/03”,年/月/日格式
  • 我认为是从“01/01/1900”开始的日期
  • 可能是 Excel 的格式问题?日期 43528 不能是 Linux 秒,第 4-6 行是可以的。所以也许看看你的 xlsx 文件。您可以尝试将 xslx 保存到 csv/text 并导入 csv/text。
  • 指定列格式是否有效? read_excel("Mappe1.xlsx", col_types = c("date", rep("numeric", 5)))

标签: r datetime


【解决方案1】:

Step1

Step2

Option 2

从主网站复制并粘贴到excel中执行以上两个步骤,您将根据您的系统格式获得正确的日期格式。希望这是为了消除您的疑问。

也可以使用以下公式(可以在选项 2 中看到)根据您提供的数据降低正确的日期格式。

=IF(ISTEXT(A3),DATE(RIGHT(A3,4),TEXT(LEFT(A3,FIND("/",A3)-1),"MM"),MID(A3,FIND(" /",A3)+1,FIND("/",A3,FIND("/",A3)+1)-FIND("/",A3)-1)),DATE(TEXT(A3,"YYYY" ),TEXT(A3,"MM"),TEXT(A3,"DD")))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 2016-06-12
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    相关资源
    最近更新 更多