2015-06-02 62 views
0

我想知道如何排除只有數字作爲字符向量中的內容的行。我想保持以下格式的變量:如何查找和替換字符向量中的數字行?

       123_john-dallas 
           222_Michael Berlin 
           45678_thomas-Karlsruhe 

並使用以下格式刪除數據:

       122345 
           12567:1992 
           120388;20:34 
           394,21:33 

從一個單一的特徵向量。按規定格式的共同主題似乎是下劃線「_」所以我沒能成功捕捉到它:

一些數據:

     seed(1000) 

         string<- function(n=1000, lenght=10) 
         { 
            random <- c(1:n)     
            for (i in 1:n) 
         { 
         random[i] <- paste(sample(c("AbcD","_", 1:9), 
           lenght, replace=TRUE), 
           collapse="") 
              } 
          return(random) 
         } 
         characterNumber<-string() 

         character<-grep(characterVector,'_') 

但我得到的只是一個空載體。

回答

3

如果你想保留包含_所有值,你可以這樣使用grep

characterNumber[grep("_", characterNumber)] 

另外,如果您想排除包含數字,:;,所有的元素,你可以嘗試這樣的事:

characterNumber[!grepl("^[0-9:;,]+$", characterNumber)] 
+0

這就是它!非常感謝!! – Mamba

+0

我可以請你擴大你的答案,只是爲了處理數據幀的情況。如果保留「_」,我還想保留與行123_Michael – Mamba

+0

相對應的其他屬性的行。如果行中包含至少一列中的「-',那麼您想保留行嗎? – juba

1

如果mystr是你的特徵向量,你可以試着問到只保留字符串包含字母:

mystr[grepl("[a-zA-Z]", mystr)] 

mystr <- c("123_john-dallas", "222_Michael Berlin", "45678_thomas-Karlsruhe","122345", "12567:1992", "120388;20:34", "394,21:33") 

mystr[grepl("[a-zA-Z]", mystr)] 
#[1] "123_john-dallas"  "222_Michael Berlin"  "45678_thomas-Karlsruhe" 
相關問題