【问题标题】:Changing data in R to dates将 R 中的数据更改为日期
【发布时间】:2018-08-14 19:10:38
【问题描述】:

我正在尝试将数据集中的值更改为日期,但是我从 y 代码中得到错误代码;

>WC1$date <- as.Date(WC1[X,], format= "%m/%d/%Y")

Error in as.Date(WC1[X, ], format = "%m/%d/%Y") : object 'X' not found
Error in WC1["X", ] : subscript out of bounds

目前这是我的数据的样子。

      X                    X1.2.2018 X1.3.2018 X1.4.2018 X1.5.2018 X1.8.2018
 [1,] "ED"                 NA        NA        NA        NA        NA       
 [2,] "Front Clinic "      NA        NA        NA        NA        NA  

即使我转置我的数据并尝试使用类似的方法。 在 CSV 文件中,我的数据在日期前面没有 X,所以我不确定为什么它们在 R 中以这种方式出现。我也尝试过使用日期格式并得到相同的错误。

> WC1$date <- as.Date(WC1['X',], format= "%m.%d.%Y")
Error in WC1["X", ] : subscript out of bounds

【问题讨论】:

  • 如果X是一个列,你需要做WC1[, 'X'](注意逗号的位置)。
  • 我想我应该问我如何更改标题,或者为什么 R 将 X 放在我的标题中?
  • “标题”是colnames(WC1)。您可以通过 colnames(WC1) &lt;- something_else 更改它。
  • colnames(WC1) 返回NULL

标签: r date vector atomic


【解决方案1】:

值(X、X1.2.2018、X1.3.2018、X1.4.2018、X1.5.2018、X1.8.2018)已经设置为列名(即标题),因此它们不是“第一行”,R 使Excel 中没有的这些区别。这意味着您不能使用 [] 选择值,但可以使用 names()。

先用 gsub 去掉开头的 X,然后用 as.Date 格式化日期

names(WC1)<-gsub("[^0-9\\.]", "", names(WC1))
names(WC1)<-as.Date(names(WC1), format = "%m.%d.%Y")

或者,将 X 添加到列名的开头是一种行为,您可以在首先读取文件时在 read.csv() 命令中切换(请参阅:R- Why are Xs added to the names of variables in my data frame?

【讨论】:

    猜你喜欢
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多