R 在数据帧中将列从字符转换为日期时获取NA

R 在数据帧中将列从字符转换为日期时获取NA,r,as.date,R,As.date,当我尝试使用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:

当我尝试使用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 ...
股票数据=rbind(读取csv(“BHELEQ.csv”)) >类别(股票数据$日期) [1] “角色” >str(库存数据) 类“spec_tbl_df”、“tbl_df”、“tbl”和“data.frame”:1488 obs。在13个变量中: $Symbol:chr“BHEL”“BHEL”“BHEL”“BHEL”。。。 $Series:chr“EQ”“EQ”“EQ”“EQ”。。。 美元日期:chr“2017年2月2日”“2017年2月3日”“2017年2月6日”“2017年2月7日”。。。 $Prev收盘价:数字140 139 143 144 152。。。 美元开盘价:num 140 144 145 151。。。 $High价格:编号141 143 146 155 157。。。 $Low价格:num 138 140 142 140 150。。。 $Last Price:num 139 143 144 151 157。。。 美元收盘价:数字139 143 144 152 156。。。 美元平均价格:数字139 142 144 150 154。。。 美元总交易量:数字5345140 7444644 8314922 45093133 25137 024。。。 美元营业额:数字7.44e+081.05e+091.20e+096.78e+093.87e+09。。。 美元交易数量:2858337426 38420 206695 105435。。。 ... ... >库存数据$Date str(库存数据) 类“spec_tbl_df”、“tbl_df”、“tbl”和“data.frame”:1488 obs。在13个变量中: $Symbol:chr“BHEL”“BHEL”“BHEL”“BHEL”。。。 $Series:chr“EQ”“EQ”“EQ”“EQ”。。。 $Date:Date,格式:NA。。。 $Prev收盘价:数字140 139 143 144 152。。。 美元开盘价:num 140 144 145 151。。。 $High价格:编号141 143 146 155 157。。。 $Low价格:num 138 140 142 140 150。。。 $Last Price:num 139 143 144 151 157。。。 美元收盘价:数字139 143 144 152 156。。。 美元平均价格:数字139 142 144 150 154。。。 美元总交易量:数字5345140 7444644 8314922 45093133 25137 024。。。 美元营业额:数字7.44e+081.05e+091.20e+096.78e+093.87e+09。。。 美元交易数量:2858337426 38420 206695 105435。。。
阅读
?strtime
您需要的格式是

stock_data$Date <- as.Date(stock_data$Date, "%d-%b-%Y") 
或者
anydate
函数来自
anytime

library(anytime)
stock_data$Date <- anydate(stock_data$Date)
库(任何时候)

stock_data$Date当我使用as.data.frame.Date时,它起作用了

stock_data$Date<-as.data.frame.Date(stock_data$Date, format = "%d-%m-%Y")

stock\u data$date您正在尝试转换格式为
%d-%m-%Y
的日期<代码>%m
表示数字月份。。请尝试
%d-%b-%Y
,其中
%b
表示缩短的月份。。
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")