用R中的一个字母替换整个字符串
问题描述:
我有一个数据集,我需要将每个数据重命名为“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
答
我的第一个想法是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
答
的样本数据:
x <- c("(P O, PIN: 671543,RANCHI)", "(P O, PIN: 671543,BLAH)", "(P O, PIN: 67338,RANCITY)", "(P O, PIN: 671543,BBBCHI)")
可以尝试grepl
和ifelse
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
答
这种替换包含RANCHI
,用括号括起来的文本的每个实例,只是(RAN)
。
x <- gsub("\\(.*RANCHI.*\\)", "\\(RAN\\)", x)
如果你的数据集是一张表,你可以发布它的头几行吗? – blakeoft 2014-09-22 16:17:16
我已经提供了表格,对于迟到的回复抱歉..请帮助 – PSraj 2014-09-23 09:26:55