2017-04-21 65 views
-1

其中R雷丁CSV數據,在塔11已在格式「1,022.00」數據和「516.00」,他們必須是「NUMERICS」或「雙」R:導入read.csv與數字格式

dados201702 <- read.csv("dataset.csv", 
         header = TRUE, 
         sep = "\t", 
         dec = ".", 
         colClasses = c("character", 
             "character", 
             "character", 
             "character", 
             "character", 
             "character", 
             "character", 
             "character", 
             "character", 
             "character", 
             "numeric", 
             "character")) 

我要進口11列數字或雙然而出現錯誤:

錯誤掃描(文件=文件,內容=什麼,月=月,報價=報價,DEC =月,掃描()預期'a real',got'1,022.00'

+0

向我們展示一些與 – ekstroem

+0

一起使用的示例數據請澄清您正在詢問的內容。您可能想查看[提問指南](http://stackoverflow.com/help/how-to-ask),特別是[最小,完整和可驗證的示例]部分(http://stackoverflow.com /幫助/ MCVE)。 –

+0

我想導入列11作爲數字或雙重錯誤發生:「錯誤在掃描(文件=文件,什麼=什麼,SEP = SEP,報價=報價,DEC = DEC,掃描()預計'一個真正的',得到'1,022.00'「 – user3565792

回答

2

看起來好像您的數據包含1000分隔符,,會給您帶來問題。您可以在data.frame中讀取並使用gsub轉換相關的列或在下面的鏈接之一建議您可以定義一個新的類定義:

在這裏,我們定義一個刪除逗號(1000分隔符)的新類。

setClass("MyNum") 
setAs("character", "MyNum", 
     function(from) as.numeric(gsub(",", "", from))) 
indata <- read.csv("tst.txt", , 
        header = TRUE, 
        sep = "\t", 
        dec = ".", 
        colClasses=c(rep("character", 10), "MyNum", "character")) 

備選地只使用as.numeric(gsub(",", "", from))其中from是包含分離器1000的矢量。

+0

正好,謝謝。 – user3565792