簡體   English   中英

使用千位分隔符將字符更改為data.frame(數字形式)中的數字

[英]Changing character to numeric in data.frame (as.numeric) with thousand separator

我使用read.csv導入了帶有數字值的CSV文件,其中CSV分隔符為“;”,十進制分隔符為“,”,另外,thousend分隔符為“。”。

Hist <- read.csv(file = "XXXX", header = T, sep = ";", dec =",", stringsAsFactors=FALSE)

我將其轉換為data.table ...

Hist <- data.table(Hist)

它看起來像這樣:

  Date        Value
# 2017-11-12  12.456,89
# 2017-11-10  13.234,99
# 2017-11-08  14.123,45

現在,我想將“值”列的類/格式更改為數字,因為我想用它來計算。 但是我嘗試的所有方法都沒有用。 例如:

Hist[, Value := as.numeric(Value)]

正在創建錯誤:

警告消息:在eval(jsub,SDenv,parent.frame())中:強制引入的NA

有人可以幫忙嗎?

它們被讀取為字符串。 為了將它們轉換為數字,請刪除千位分隔符(。),然后將小數點分隔符(,)轉換為點。

Hist$Value = as.numeric(gsub(",",".",(gsub("\\.","",Hist$Value))))

與以下內容相同:

noPoints = gsub("\\.", "", Hist$Value)
commaToPoint = gsub(",", ".", noPoints)
Hist$Value = as.numeric(commaToPoint)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM