2014-01-20 49 views
1
WK,MND,CS,SHP,RevCY,RevLY,TCY,TLY,ACY,ALY 

"2,JAN,GER,""Victoria's Secrets"",29307,25419,841,768,2320,1755" 

2,JAN,KAP,Brand Shop,2027,-,95,0,175,-0 

2,JAN,KAP,Kapp‚ Drugstore West,89768,78824,3309,3052,6197,5634 

2,JAN,KAP,Kapp‚ P&C Centraal,680019,640951,8709,8116,19450,18385 

2,JAN,KAP,Kapp‚ Sunglasses Centraal,49216,43940,464,421,550,478 

2,JAN,KAP,Kapp‚ Sunglasses Schengen,25721,26592,306,318,333,378 

2,JAN,KAP,Kapp‚ Sunglasses West,50280,53089,477,510,566,_78 

我總是在努力將數據轉化爲正確的結構。我有上述的數據結構(該文件有超過10K行)。加載時,我希望列具有特定的數據類。用正確的colClasses讀取一個文本文件

當我鍵入:

RIS <- read.table("RIS.txt", sep=",", header=T, fill=T, 
    colClasses=c("integer", "character", "factor", "factor", rep("numeric",6))) 

我得到一個錯誤信息:

Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : 
    scan() expected 'an integer', got '"2' 

我想這是因爲列WK實際上包含雜亂的符號。但在其他專欄中也可能出現這種情況。

任何人都可以幫助我正確加載這些數據並「清理」數據集,以便將其轉化爲正確的格式或類別嗎?

+1

你爲我提供了良好的工作...例子是 –

+0

但文件很大,一些列具有噪聲他們這樣行:「43,OKT,WOD」,」讓我們玩玩具L3「」,26096,30863,1236,1464, - ,'2531「如何在上面提到的read.table表達式中清除它? –

+0

請更新您的示例數據以反映您的問題。 – Andrie

回答

0

您有一個典型的數據清理問題 - 根據我的經驗,80%的典型分析任務的項目時間被數據準備消耗。

鑑於你的數據樣本,請嘗試以下操作:

  • 使用read.csv()的說法quote=""。這會忽略所有的引號 - 但當然你可能需要稍後再刪除。
  • 使用正則表達式來消除數字列任何垃圾字符(例如「或_),然後強迫進入數字

試試這個:

data <- " 
WK,MND,CS,SHP,RevCY,RevLY,TCY,TLY,ACY,ALY 
\"2,JAN,GER,\"\"Victoria's Secrets\"\",29307,25419,841,768,2320,1755\" 
2,JAN,KAP,Brand Shop,2027,-,95,0,175,-0 
2,JAN,KAP,Kapp‚ Drugstore West,89768,78824,3309,3052,6197,5634 
2,JAN,KAP,Kapp‚ P&C Centraal,680019,640951,8709,8116,19450,18385 
2,JAN,KAP,Kapp‚ Sunglasses Centraal,49216,43940,464,421,550,478 
2,JAN,KAP,Kapp‚ Sunglasses Schengen,25721,26592,306,318,333,378 
2,JAN,KAP,Kapp‚ Sunglasses West,50280,53089,477,510,566,_78 
" 

現在讀取數據:

x <- read.csv(text=data, quote="", header=TRUE) 

啓動清潔過程:

numericCols <- c(1, 5:10) 
x[numericCols] <- lapply(x[numericCols], function(x)as.numeric(gsub("[-_\"]", "", x))) 
x 

結果:

WK MND CS      SHP RevCY RevLY TCY TLY ACY ALY 
1 2 JAN GER ""Victoria's Secrets"" 29307 25419 841 768 2320 1755 
2 2 JAN KAP    Brand Shop 2027  NA 95 0 175  0 
3 2 JAN KAP  Kapp‚ Drugstore West 89768 78824 3309 3052 6197 5634 
4 2 JAN KAP  Kapp‚ P&C Centraal 680019 640951 8709 8116 19450 18385 
5 2 JAN KAP Kapp‚ Sunglasses Centraal 49216 43940 464 421 550 478 
6 2 JAN KAP Kapp‚ Sunglasses Schengen 25721 26592 306 318 333 378 
7 2 JAN KAP  Kapp‚ Sunglasses West 50280 53089 477 510 566 78 
+0

它的工作原理!這是好東西。非常感謝!我不熟悉gsub功能 –