2014-09-22 107 views
0

我有一個數據集,我需要將每個數據重命名爲「KAS」,以便列中的每個KASARAGOD實例。如果找到實例,我需要將該列中的整個內容替換爲「KAS」。用R中的一個字母替換整個字符串

P O, PIN: 671543,KASARAGOD是公正KAS

我應該使用什麼命令?

的樣本數據:

G05 G06 G07 G08 G09 G10 address_2 
A A+ A+ A+ A+ A+ KUMBADAJE P O, PIN: 671551, KASARAGOD 
A B B B+ A A MALLAM P O, PIN: 671542, KASARAGOD 
B+ B B+ A+ C+ B+ KUMBADAJE P O, PIN: 671551, KASARAGOD 
B+ B+ B B+ A A+ MOVVAR P O, PIN: 671543, KASARAGOD 
B B B B+ A+ A+ MOVVAR P O, PIN: 671543, KASARAGOD 
A+ A+ A+ A+ A+ A+ MOVVAR P O, PIN: 671543, KASARAGOD 
B+ B+ B A B+ A YETHADKA P O, PIN: 671551, KASARAGOD 
C C C C C A MOVVAR P O, PIN: 671543, KASARAGOD 
A+ A+ A+ A+ A+ A+ MOVVAR P O, PIN: 671543, KASARAGOD 
+0

如果你的數據集是一張表,你可以發佈它的頭幾行嗎? – blakeoft 2014-09-22 16:17:16

+0

我已經提供了表格,對於遲到的回覆抱歉..請幫助 – PSraj 2014-09-23 09:26:55

回答

1

我的第一個想法是gsub。如果您的數據幀被稱爲EDU,嘗試

edu$address_2 <- gsub(".*KASARAGOD.*", "KAS", edu$address_2) 

這會給你

G05 G06 G07 G08 G09 G10 address_2 
    A A+ A+ A+ A+ A+  KAS 
    A B B B+ A A  KAS 
B+ B B+ A+ C+ B+  KAS 
B+ B+ B B+ A A+  KAS 
    B B B B+ A+ A+  KAS 
A+ A+ A+ A+ A+ A+  KAS 
B+ B+ B A B+ A  KAS 
    C C C C C A  KAS 
A+ A+ A+ A+ A+ A+  KAS 
+0

當(RAN)是請求的輸出時,這將產生'RAN'。 – Hugh 2014-09-22 13:56:28

+2

我明白你的意思,但要求兩件相互衝突的事情。一個沒有parens,一個with。 – blakeoft 2014-09-22 13:58:07

+0

是的好點,不確定括號是否實際上是字符串的一部分或只是列分隔符。 – Hugh 2014-09-22 13:59:09

2

的樣本數據:

x <- c("(P O, PIN: 671543,RANCHI)", "(P O, PIN: 671543,BLAH)", "(P O, PIN: 67338,RANCITY)", "(P O, PIN: 671543,BBBCHI)") 

可以嘗試greplifelse

x <- ifelse(grepl("RANCHI", x), "(RAN)", x) 
x 
## [1] "(RAN)" "(P O, PIN: 671543,BLAH)" "(P O, PIN: 67338,RANCITY)" "(P O, PIN: 671543,BBBCHI)" 

或者只是grep(或grepl

x[grep("RANCHI", x)] <- "(RAN)" 
x 
## [1] "(RAN)" "(P O, PIN: 671543,BLAH)" "(P O, PIN: 67338,RANCITY)" "(P O, PIN: 671543,BBBCHI)" 
+0

@DavidArenburg +1感謝您的編輯。你的解決方案非常整潔。 – jalapic 2014-09-22 13:54:41

2

這種替換包含RANCHI,用括號括起來的文本的每個實例,只是(RAN)

x <- gsub("\\(.*RANCHI.*\\)", "\\(RAN\\)", x) 
相關問題