【问题标题】:Data entry in an Excel based CSV and R's as.Date() function causing problems基于 Excel 的 CSV 和 R 的 as.Date() 函数中的数据输入导致问题
【发布时间】:2019-03-09 22:01:57
【问题描述】:

所以我一直在使用 excel 手动输入 CSV 文件的数据,我正在使用 read_csv 将其读入 R Studio。

阅读正常,我的日期是这种格式31/07/2013

所以我用它来转换它

patients$Date <- as.Date(patients$Date, "%d/%m/%Y")

这一切看起来都很简单。 但是,对于运行的第二个数据集,它不会转换所有值并将一些值转换为 NA。

这部分源于 Excel 的内置数字格式。 哪一个运行日期的三种方式

  1. 常规:从 1900 年 1 月 1 日开始计算的天数
  2. 短 : 31/07/2013
  3. 长:2013 年 7 月 31 日

现在问题是,这一次我保持原样。所以我希望我应该有一个问题。 我的数据集有几千行长,as.Date()似乎有非系统地放出一些值。 手动地,excel 中的变化并没有在 R 中体现出来。 如何找到这些值并在 R 中手动更改它们。

我还在旁边放了年和月两列供参考(因为我想我这次可能会遇到这个问题)。

   Year Month   Date    Site    Category    Services    Count
2013    July    31/07/2013  K   Test    Laboratory  1642
2013    July    31/07/2013  K   Test    X-Ray   16

我现在不需要31/07/2013 所以可以使用07/2013

所以我用它来过滤我的数据

patients %>%
  group_by(Date)%>%
  filter(Category == "Registration", Site == "K")

所以我得到以下输出

Year Month  Date       Site  Category     Services                Count
   <int> <chr>  <chr>      <chr> <chr>        <chr>                   <int>
 1  2013 July   31/07/2013 K   Registration Old Registration Cld       25
 2  2013 July   31/07/2013 K   Registration Old Registration Male     155
 3  2013 July   31/07/2013 K   Registration Old Registration Female   445
 4  2013 July   31/07/2013 K   Registration New Registration Child     24
 5  2013 July   31/07/2013 K   Registration New Registration Male     106

一旦我申请patients$Date &lt;- as.Date(patients$Date, "%d/%m/%Y") 其中一些显示如下...但并非全部,因为 tibble 中的列类型已更改为 Date 所以它在一定程度上奏效了。

2017 June  NA         K   Registration Old Registration Female   351
2  2017 June  NA      K   Registration New Registration Child     20
3  2017 June  NA      K   Registration New Registration Male      66
4  2017 June  NA      K   Registration New Registration Female   117
5  2017 June  NA      K   Registration Staff Registration         37
6  2017 June  NA      K   Registration Free  Registration          7
> 

有没有办法排序?

我将来应该使用什么软件来管理 CSV 的 Open Office 的计算似乎也好不到哪里去。 我是否只需要一个 CSV 管理器来避免 Excel 引起问题?

非常感谢您的帮助

干杯


【问题讨论】:

  • 嗨,阿西夫,欢迎来到 StackOverflow。请提供一个可重现的示例,以便我们看到问题所在。您可以对日期导致问题的数据框进行子集化,并使用 dput() 创建代码以重现 data.frame。

标签: r excel csv dplyr data-entry


【解决方案1】:

大家好(读过这篇文章的两个人哈!)

所以我已经解决了这个问题。 很简单的错误。

不过,我先从一首短诗开始

九月、四月、十一月和六月共三十天;其他的 有三十一个,仅二月除外,那有二十八个 天晴,每个闰年有二十九天。

由于某种原因,Excel 将我的所有日​​期都设置为当月 31 日。 我应该意识到的是,转换为 NA 的日期是以系统的方式与没有 31 天的月份有关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-20
    • 2021-06-02
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多