使用R替换字符

时间:2012-10-16 23:17:54

标签: r

我有一个带有1列的地址的csv文件。它的值如下:

A <- structure(list(Address = structure(1:3, .Label = c("&2340 P St", 
 "&5656 N St", "456 B Street"), class = "factor")), .Names = "Address", 
 row.names = c(NA, 3L), class = "data.frame")
A
##        Address
## 1   &2340 P St
## 2   &5656 N St
## 3 456 B Street

如果有“&amp;”,我需要清理数据 - 删除所有字符(或用空格替换)。 我希望在2.csv文件中得到这个结果:

##        Address
## 1 456 B Street

以下是代码:

 A <-read.csv("U:/161/1.csv", header=T,sep=",")
 B<-gsub("&", " ", A$ADDRESS1, ignore.case = TRUE)
 write.table(B, file = "U:/161/2.csv", sep = ","
 , col.names = NA, qmethod = "double")

它只删除“&amp;”。如何删除其余地址?

1 个答案:

答案 0 :(得分:0)

使用grepgrepl标识哪些行包含&,然后排除这些行

B <- droplevels(A[!grepl('&', A$Address), ,drop=FALSE])
B
##       Address
## 3 456 B Street

请注意我将[调用封装在droplevels中,以确保丢弃未使用的级别(&的级别) 另外,在这种情况下,结果只有1行,我包含drop=FALSE以保持Bdata.frame

要使用grep(返回索引),您可以使用-

B <- droplevels(A[-grep('&', A$Address), ,drop=FALSE])
B