SORU
14 ŞUBAT 2010, Pazar


Nasıl ve R ardındaki boşluklar kırpmak mı?

Ve bir veri ardındaki boşluklar ile bazı sıkıntılar yaşıyorum.çerçeve. Örneğin data.frame belli bir koşula bağlı olarak row belirli bir bakmak istiyorum:

> myDummy[myDummy$country == c("Austria"),c(1,2,3:7,19)] 

[1] codeHelper     country        dummyLI    dummyLMI       dummyUMI       
[6] dummyHInonOECD dummyHIOECD    dummyOECD      
<0 rows> (or 0-length row.names)

Ülke Avusturya açıkçası benim data.frame varlığından beri beklenen çıktıyı alamadım neden merak ediyordum. Benim kod geçmişine bakarak ve neyin yanlış gittiğini anlamaya çalışıyorum sonra denedim:

> myDummy[myDummy$country == c("Austria "),c(1,2,3:7,19)]
   codeHelper  country dummyLI dummyLMI dummyUMI dummyHInonOECD dummyHIOECD
18        AUT Austria        0        0        0              0           1
   dummyOECD
18         1

Komut değiştirdim tüm Avusturya sonra ek bir boşluk.

Daha da can sıkıcı sorunları açıkça ortaya çıkmaktadır. İki ülke Kare sütun dayalı birleştirmek istediğim zaman (örn. Bir data.frame Diğer çerçeve "Austria" varken "Austria " kullanır. Eşleşen çalışmıyor.

  1. Orada 'sorunun farkındayım ki benim ekranda boşluk? göstermek için iyi bir yoldur
  2. Ve R baştaki ve sondaki boşluk kaldırabilir miyim?

Şu ana kadar boşluk kaldırır ama eğer bir şekilde R. içinde yapabilirsem güzel olurdu Perl basit bir komut dosyası yazmak için kullandım

CEVAP
14 ŞUBAT 2010, Pazar


Muhtemelen en iyi yolu verilerinizi dosya okurken sondaki boşluklar işlemek için. read.csv read.table kullanırsanız parametrestrip.white=TRUE ayarlayabilirsiniz.

Eğer dizeleri daha sonra bu işlevlerden birini temizlemek istiyorsanız:

# returns string w/o leading whitespace
trim.leading <- function (x)  sub("^\\s ", "", x)

# returns string w/o trailing whitespace
trim.trailing <- function (x) sub("\\s $", "", x)

# returns string w/o leading or trailing whitespace
trim <- function (x) gsub("^\\s |\\s $", "", x)

myDummy$country bu işlevleri kullanmak için:

 myDummy$country <- trim(myDummy$country)

'Boşluk kullanabilirsiniz:

 paste(myDummy$country)

sen bu dizeler tırnak içinde gösterir (") nokta boşluklar daha kolay hale getiriyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
R

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BeginnersTech

    BeginnersTec

    8 NİSAN 2011
  • jbignacio

    jbignacio

    13 Mart 2006
  • TomKNJ

    TomKNJ

    26 ŞUBAT 2007