我有一个带有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;”。如何删除其余地址?
答案 0 :(得分:0)
使用grep
或grepl
标识哪些行包含&
,然后排除这些行
B <- droplevels(A[!grepl('&', A$Address), ,drop=FALSE])
B
## Address
## 3 456 B Street
请注意我将[
调用封装在droplevels
中,以确保丢弃未使用的级别(&
的级别)
另外,在这种情况下,结果只有1行,我包含drop=FALSE
以保持B
为data.frame
要使用grep
(返回索引),您可以使用-
B <- droplevels(A[-grep('&', A$Address), ,drop=FALSE])
B