当我尝试使用as.Date将数据类型从字符转换为日期时,我得到了NA。
下面是我的代码。请让我知道我在做什么错。
>stock_data=rbind(read_csv("BHELEQ.csv"))
>class(stock_data$Date)
[1] "character"
>str(stock_data)
Classes ‘spec_tbl_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 1488 obs. of 13 variables:
$ Symbol : chr "BHEL" "BHEL" "BHEL" "BHEL" ...
$ Series : chr "EQ" "EQ" "EQ" "EQ" ...
$ Date : chr "02-Feb-2017" "03-Feb-2017" "06-Feb-2017" "07-Feb-2017" ...
$ Prev Close : num 140 139 143 144 152 ...
$ Open Price : num 140 140 144 145 151 ...
$ High Price : num 141 143 146 155 157 ...
$ Low Price : num 138 140 142 140 150 ...
$ Last Price : num 139 143 144 151 157 ...
$ Close Price : num 139 143 144 152 156 ...
$ Average Price : num 139 142 144 150 154 ...
$ Total Traded Quantity: num 5345140 7444644 8314922 45093133 25137024 ...
$ Turnover : num 7.44e+08 1.05e+09 1.20e+09 6.78e+09 3.87e+09 ...
$ No. of Trades : num 28583 37426 38420 206695 105435 ...
...
...
> stock_data$Date<-as.Date(stock_data$Date, format = "%d-%m-%Y")
> str(stock_data)
Classes ‘spec_tbl_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 1488 obs. of 13 variables:
$ Symbol : chr "BHEL" "BHEL" "BHEL" "BHEL" ...
$ Series : chr "EQ" "EQ" "EQ" "EQ" ...
$ Date : Date, format: NA NA NA ...
$ Prev Close : num 140 139 143 144 152 ...
$ Open Price : num 140 140 144 145 151 ...
$ High Price : num 141 143 146 155 157 ...
$ Low Price : num 138 140 142 140 150 ...
$ Last Price : num 139 143 144 151 157 ...
$ Close Price : num 139 143 144 152 156 ...
$ Average Price : num 139 142 144 150 154 ...
$ Total Traded Quantity: num 5345140 7444644 8314922 45093133 25137024 ...
$ Turnover : num 7.44e+08 1.05e+09 1.20e+09 6.78e+09 3.87e+09 ...
$ No. of Trades : num 28583 37426 38420 206695 105435 ...
答案 0 :(得分:2)
读取?strptime
所需的格式是
stock_data$Date <- as.Date(stock_data$Date, "%d-%b-%Y")
或者还有其他一些可以处理日期的库,而您不必明确提及格式。
例如:-lubridate
library(lubridate)
stock_data$Date <- dmy(stock_data$Date)
或者是anydate
库中的anytime
函数
library(anytime)
stock_data$Date <- anydate(stock_data$Date)
答案 1 :(得分:0)
当我用作.data.frame.Date时它起作用了
stock_data$Date<-as.data.frame.Date(stock_data$Date, format = "%d-%m-%Y")
代替
stock_data$Date<-as.Date(stock_data$Date, format = "%d-%m-%Y")