2013-10-16 52 views
5

Ayrılmış bir csv dosyasından bir tablo oluşturmaya çalışıyorum. Tüm satırların aynı sayıda öğeye sahip olmadığının farkındayım, bu yüzden bu satırları ortadan kaldırmak için bir kod yazdım. Sorun şu ki, başka bir virgül içeren sayıları (binlerce) içeren satırlar var.okunabilir değerleri virgülle ayrılmış ve ayrıca her öğenin içinde virgülle

pURL <- "http://financials.morningstar.com/ajax/exportKR2CSV.html?&callback=?&t=EI&region=FRA&order=asc" 
res <- read.table(pURL, header=T, sep='\t', dec = '.', stringsAsFactors=F) 
x <- unlist(lapply(keyRatios, function(u) strsplit(u,split='\n')) [[1]]) 
Ya read.table veya read.delim ait quote = argüman faydalanmak gerekir

cevap

8

...

res <- read.delim(pURL, header=F, sep=',', dec = '.', stringsAsFactors=F , quote = "\"" , fill = TRUE , skip = 2) 

ayırıcı ",": Ben düzgün satırları bölme yeteneğine sahip değilim, burada kod bu "\t" değil. Milyonlarca binlerce olarak yazılır Numaralar Eğer R quote = "\"" ile tırnak içine virgül görmezden yapmak için quote argüman kullanabilmesi için bu dosyada alıntı daima vardır ve ilk iki satır atlamak ve boşlukları doldurmak için fill = TRUE kullanmak istiyorum düzensiz çizgiler üzerinde.

head(res) 

#       2003-12 2004-12 2005-12 2006-12 2007-12 2008-12 2009-12 2010-12 2011-12 2012-12 TTM 
#2   Revenue EUR Mil 2,116 2,260 2,424 2,690 2,908 3,074 3,268 3,892 4,190 4,989 5,034 
#3   Gross Margin % 60.6 60.3 57.3 58.2 57.6 56.9 56.1 55.5 55.4 55.8 56.1 
#4 Operating Income EUR Mil  365  404  394  460  505  515  555  618  683  832 841 
#5  Operating Margin % 17.2 17.9 16.2 17.1 17.4 16.7 17.0 15.9 16.3 16.7 16.7 
#6  Net Income EUR Mil  200  227  289  331  371  389  402  472  518  584 594 
#7 Earnings Per Share EUR 3.90 4.30 5.44 6.22 3.48 3.62 3.78 4.36 4.82 2.77 2.80 

ben daha iyi biçimlendirme verdi sonradan böyle res sütun adlarını ...

names(res) <- res[1,]; res <- res[-1,] 

ayarlayın.

+0

Bu harika cevap için çok teşekkürler! – nopeva

+0

@ AP13 çok hoş geldiniz. İlk etapta tekrarlanabilir örnek sağlamak için çok teşekkürler! :-) –

İlgili konular