R - 从列中删除逗号后删除任何内容

时间:2014-08-14 12:17:53

标签: regex r string

我想删除此列,以便它只显示姓氏 - 如果有逗号我想删除逗号及其后的任何内容。我有数据列,它只是姓氏和最后一个,第一个。数据如下:

Last Name  
Sample, A  
Tester  
Wilfred, Nancy  
Day, Bobby Jean  
Morris  

5 个答案:

答案 0 :(得分:12)

您可以使用gsub()和一些正则表达式:

> x <- 'Day, Bobby Jean'
> gsub("(.*),.*", "\\1", x)
[1] "Day"

答案 1 :(得分:5)

您可以使用gsub:

gsub(",.*", "", c("last only", "last, first"))
# [1] "last only" "last"

",.*"说:替换逗号(,)和之后的每个字符(。*),没有""

答案 2 :(得分:0)

 str1 <- c("Sample, A", "Tester", "Wifred, Nancy", "Day, Bobby Jean", "Morris")
 library(stringr)
  str_extract(str1, perl('[A-Za-z]+(?=(,|\\b))'))
 #[1] "Sample" "Tester" "Wifred" "Day"   "Morris"  

匹配字母[A-Za-z]+并提取其后跟,或字边界的内容。

答案 3 :(得分:0)

这将起作用

a <- read.delim("C:\\Desktop\\a.csv", row.names = NULL,header=TRUE, 
                 stringsAsFactors=FALSE,sep=",")
a=as.matrix(a)
Data=str_replace_all(string=a,pattern="\\,.*$",replacement=" ")

答案 4 :(得分:0)

同时尝试strsplit

string <- c("Sample, A", "Tester", "Wifred, Nancy", "Day, Bobby Jean", "Morris")

sapply(strsplit(string, ","), "[", 1)
#[1] "Sample" "Tester" "Wifred" "Day"    "Morris"