通过强制引入的NA

时间:2015-03-05 14:45:13

标签: r dataframe numeric

我已经看到有关于此的问题,但没有一种方法可以帮助我。

我有数据dt,我需要创建logit模型,因此需要数值。

所以我尝试将数据转换为数据(数据帧)。

  head(Perkiekmenesiumokejo)
[1] 14,00 5,00  2,00  2,00  6,00  5,00 
22 Levels: 1,00 10,00 11,00 12,00 13,00 14,00 15,00 17,00 2,00 20,00 27,00 3,00 32,00 33,00 ... 

1)

> as.numeric(as.character(dt[,38]))
  [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [34] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [67] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

2)

> nr<-factor(dt[,38])
> paste( " ", nr, " ")
> as.numeric(paste( " ", nr, " "))
  [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [34] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

3)

suppressWarnings((as.numeric(as.character(dt[,38]))))
  [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [34] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [67] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

还有好几次它给了我完全不同的数字然后我的dt [,38]是。

1 个答案:

答案 0 :(得分:0)

这里的问题是R期待美式数字格式(,为千位分隔符,.为小数点。快速解决此问题的方法是使用欧式CSV阅读器read.csv2

Perkiekmenesiumokejo <- factor(c("14,00","5,00","2,00","2,00","6,00","5,00"))
read.csv2(text = as.character(Perkiekmenesiumokejo))[,1]
# [1] 5 2 2 6 5