如何从字符向量中删除前导数字和点?

时间:2017-02-13 03:55:44

标签: r

我有一个只有一列的数据框。在该列中有两种类型的数据:

  1. 只有角色
  2. “number.character”
  3. 我想找到第二种类型的数据并删除数字和点。 我首先将数据从因子转换为字符。然后我使用'strsplit'来分割第二种类型的数据,但它没有用。

    我的数据示例:

    df <- data.frame(Col1 = c("ab","12.cd","cc","dd","34.af"), stringsAsFactors=FALSE)
    

    我想找到"12.cd""34.af"并转为"cd""af"

    有人可以请你解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

我们可以从字符串的开头([^0-9]+)匹配一个或多个数字(.)后跟^,并将其替换为空白(""

df$Col1 <- sub("^[0-9]+\\.", "", df$Col1)
df$Col1
#[1] "ab" "cd" "cc" "dd" "af"

或另一种选择是匹配所有非字母字符并替换为空白

sub("[^[:alpha:]]+", "", df$Col1)

数据

df <- data.frame(Col1 = c("ab","12.cd","cc","dd","34.af"), stringsAsFactors=FALSE)