【发布时间】:2020-05-26 19:26:17
【问题描述】:
我有一个数据框列,其中包含一个字符串,后跟一个小数点和一个数字(例如,
data <- data.frame(ID = c("alpha.1","alpha.2", "alpha.3", "beta.1", "beta.2", "beta.3"))。我怎样才能只删除小数和数字,并留下单词?
【问题讨论】:
我有一个数据框列,其中包含一个字符串,后跟一个小数点和一个数字(例如,
data <- data.frame(ID = c("alpha.1","alpha.2", "alpha.3", "beta.1", "beta.2", "beta.3"))。我怎样才能只删除小数和数字,并留下单词?
【问题讨论】:
我们可以使用sub匹配.后跟一个或多个数字(\\d+)在字符串的末尾($))并替换为空白("")
data$ID <- sub("\\.\\d+$", "", data$ID)
data$ID
#[1] "alpha" "alpha" "alpha" "beta" "beta" "beta"
或者另一个选项是trimws
data$ID <- trimws(data$ID, whitespace = "\\..*")
或使用word
library(stringr)
word(data$ID, 1, sep=fixed("."))
#[1] "alpha" "alpha" "alpha" "beta" "beta" "beta"
【讨论】: