【发布时间】:2014-08-14 12:17:52
【问题描述】:
我想删除此列,使其仅显示姓氏 - 如果有逗号,我想删除逗号及其后面的任何内容。我的数据列混合了姓氏和姓氏,首先。数据如下:
Last Name
Sample, A
Tester
Wilfred, Nancy
Day, Bobby Jean
Morris
【问题讨论】:
我想删除此列,使其仅显示姓氏 - 如果有逗号,我想删除逗号及其后面的任何内容。我的数据列混合了姓氏和姓氏,首先。数据如下:
Last Name
Sample, A
Tester
Wilfred, Nancy
Day, Bobby Jean
Morris
【问题讨论】:
你可以使用 gsub() 和一些正则表达式:
> x <- 'Day, Bobby Jean'
> gsub("(.*),.*", "\\1", x)
[1] "Day"
【讨论】:
你可以使用 gsub:
gsub(",.*", "", c("last only", "last, first"))
# [1] "last only" "last"
",.*" 说:替换逗号 (,) 和之后的每个字符 (.*),没有任何内容 ""。
【讨论】:
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]+ 并提取后面跟, 或单词边界的字母。
【讨论】:
这会起作用
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=" ")
【讨论】:
也可以试试strsplit:
string <- c("Sample, A", "Tester", "Wifred, Nancy", "Day, Bobby Jean", "Morris")
sapply(strsplit(string, ","), "[", 1)
#[1] "Sample" "Tester" "Wifred" "Day" "Morris"
【讨论】: