【问题标题】:R, csv file, As.Date returns only NAsR,csv 文件,As.Date 仅返回 NA
【发布时间】:2015-11-27 21:49:02
【问题描述】:

我有一个包含财务数据的 csv 文件(即具有相应价格的日期)。我的目标是在 R 中加载这些数据并将日期从字符数据转换为日期。我尝试了以下方法:

data<-read.csv("data.csv",sep=";")
attach(data)
as.Date(Date,format="%Y-%b-%d") #'Date' is the column containing the dates

很遗憾,这只会导致 Date 中的 NA。关于这个问题在其他线程中提出但对我没有帮助的事情:

  • 使用“stringsAsFactors=FALSE”读取 csv 文件
  • 将 Excel 中的日期格式化为日期

这是我的 csv 文件的示例:

Date;Open;High;Low;Close;Volume;Adj Close
30.10.2015;10842.51953;10850.58008;10748.7002;10850.13965;89270000;10850.13965
29.10.2015;10867.19043;10886.98047;10741.13965;10800.83984;122513100;10800.83984
28.10.2015;10728.16016;10848.41016;10691.62988;10831.95996;0;10831.95996
27.10.2015;10761.37012;10807.41016;10692.19043;10692.19043;0;10692.19043
26.10.2015;10791.17969;10863.08984;10756.83008;10801.33984;73091500;10801.33984
23.10.2015;10610.33008;10847.46973;10586.95996;10794.54004;0;10794.54004
22.10.2015;10213.00977;10508.25;10194.74023;10491.96973;107511600;10491.96973
21.10.2015;10185.41992;10277.58984;10107.91992;10238.09961;70021400;10238.09961
20.10.2015;10174.79981;10194.53027;10080.19043;10147.67969;67235200;10147.67969

【问题讨论】:

  • 1) 在您发布 csv 文件样本之前,没有人可以帮助您。 2) 不要在你的 R 代码中使用attach
  • @nrussell,'attach' 有什么问题?
  • 它会用不合格的变量名使您的环境变得混乱,这可能会导致您的程序中出现细微的错误。这只是编写 R 代码的一种混乱、单一的方式。

标签: r csv


【解决方案1】:

您的format 参数不正确,这通常是在将字符串强制为Date 对象时导致NAs 的原因。你可以改用这个:

R> as.Date(Df$Date, format = "%d.%m.%Y")
#[1] "2015-10-30" "2015-10-29" "2015-10-28" "2015-10-27" "2015-10-26"
#[6] "2015-10-23" "2015-10-22" "2015-10-21" "2015-10-20"

除了attach,您可以使用within 等替代方法来避免限定列名。例如,

Df <- within(Df, {
  Date <- as.Date(Date, format = "%d.%m.%Y")
})
##
R> class(Df$Date)
#[1] "Date"

数据:

Df <- read.table(
  text = "Date;Open;High;Low;Close;Volume;Adj Close
30.10.2015;10842.51953;10850.58008;10748.7002;10850.13965;89270000;10850.13965
  29.10.2015;10867.19043;10886.98047;10741.13965;10800.83984;122513100;10800.83984
  28.10.2015;10728.16016;10848.41016;10691.62988;10831.95996;0;10831.95996
  27.10.2015;10761.37012;10807.41016;10692.19043;10692.19043;0;10692.19043
  26.10.2015;10791.17969;10863.08984;10756.83008;10801.33984;73091500;10801.33984
  23.10.2015;10610.33008;10847.46973;10586.95996;10794.54004;0;10794.54004
  22.10.2015;10213.00977;10508.25;10194.74023;10491.96973;107511600;10491.96973
  21.10.2015;10185.41992;10277.58984;10107.91992;10238.09961;70021400;10238.09961
  20.10.2015;10174.79981;10194.53027;10080.19043;10147.67969;67235200;10147.67969",
  header = TRUE, stringsAsFactors = FALSE, sep = ";")

【讨论】:

    猜你喜欢
    • 2021-05-03
    • 2016-11-16
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多