2012-06-01 22 views
5

Sınırlayıcının bir ters eğik olduğu büyük miktarda veriye sahibim. R'de işlem yapıyorum ve ters eğik çizgi bir meta karakter olduğundan, dizeyi nasıl bölebileceğimi bulmakta zorlanıyorum. Örneğin, bir dize şu şekilde görünecektir: Ben "kullanılmış çalıştığınızdaBir meta karakterle R'de strsplit

strsplit(tempStr, "\\") 
Error in strsplit(tempStr, "\\") : 
    invalid regular expression '\', reason 'Trailing backslash' 

:

1128\0019\XA5\E2R\366\00=15 

ve ben \ karakteri boyunca bölmek istiyorum ama strsplit komutunu çalıştırdığınızda Maalesef

strsplit(tempStr, "\", fixed = TRUE) 

, ben veri gener başka bir programla veri önişlem değil çünkü: bu ters eğik çizgiden sonra bir şey bekliyordum çünkü sabit" seçeneği, bu çalışmaz günlük.

cevap

14

kod Satır (açıkça söyleme rağmen) 'dir:

strsplit(tempStr, "\\") 

ve

strsplit(tempStr, "\\\\") 

Bu "\\" olarak okunacaktır olması gereken normal İfade bir "\" olarak anlaşılacaktır.

+0

maalesef bu olmuyor ... Sadece aynı ipi geri aldım. Başka fikirlerin var mı? Teşekkürler. – newRUser

+2

Lütfen kendi kendine yeten bir örnek sağladığınızdan emin olabilirsiniz (yani, bunu çalıştırabilmemiz için R koduna sahip olursunuz?) –

+0

Evet, aynı sorun ... ben \\\\ yaptığımda, çift eğik çizgi oluşumunu kaldırır, ama \\ yukarıdaki hatayı alır ve \\\ aşağıdaki alıntıdan kaçmayı dener ... –

3

Verilerinizin bir çeşit dosyada olduğundan şüpheleniyorum. Bu durumda, read.table kullanın, ancak sınırlayıcıyı açıkça belirtin. Örneğin, dosya oldu varsayalım:

a\b\c\d 
e\f\g\h 

sonra R içine bu okumayı, komutu kullanın: Bu deneyin

read.table("file.txt", sep="\\") 
-1

:

strsplit(tempStr, "\"") 
İlgili konular