将文本数据框转换为数字数据框会给出NA的列表

时间:2019-03-15 12:55:28

标签: r

这是我的代码,我想将文本的数据框转换为数字的数据框:

library(reldist)

year_return[complete.cases(year_return), ]
year_returnGINI <- as.numeric(as.character(year_return[2:19]))

但是,我得到了NA列表,而不是数字数据框:

 [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

我该怎么办?

这是数据集的样本:

     Date         .SXQR       .SXTR    .SXNR      .SXMR      .SXAR       .SX3R       .SX6R    
[1,] "2000-01-03" " 364.9400" "223.93" "489.0400" "586.3800" " 306.5600" " 246.8100" "385.360"
[2,] "2000-01-04" " 345.0400" "218.90" "474.0500" "566.1500" " 301.1300" " 239.2400" "374.640"
[3,] "2000-01-05" " 338.2200" "215.88" "464.2000" "542.2900" " 298.2200" " 239.5500" "373.260"

这是full dataset

的链接

更新

我想知道使用库reldist中的基尼系数。

我的代码现在是:

library(reldist)

year_return <- read.csv("year_return.csv")
year_return[3:19] <- lapply(year_return[3:19], function(x) 
  as.numeric(as.character(x)))
year_return[[2]] <- as.Date(year_return[[2]])
str(year_return)

gini(year_return[3:19],w)

我得到此消息错误: [.data.frame(x,ox)中的错误:未定义的列已选中。

注意:“ w”是:

 [,1]       [,2]       [,3]       [,4]       [,5]       [,6]       [,7]       [,8]       [,9]
[1,] 0.04591712 0.04078667 0.04126135 0.05131896 0.04349168 0.04834431 0.04694083 0.03904389 0.04117694
          [,10]      [,11]      [,12]      [,13]      [,14]     [,15]      [,16]      [,17]     [,18]
[1,] 0.04537461 0.04692524 0.04045692 0.04696848 0.05087293 0.1713231 0.08499888 0.04396601 0.0708321

我该怎么办 ?

1 个答案:

答案 0 :(得分:2)

这很简单。请勿将as.numeric(as.character(.))应用于数据帧,而应逐列应用列向量。

year_return <- read.csv("year_return.csv")
year_return[3:19] <- lapply(year_return[3:19], function(x) 
  as.numeric(as.character(x)))
year_return[[2]] <- as.Date(year_return[[2]])
str(year_return)

此外,第二个向量是日期