首页 > 解决方案 > 如何删除字符两侧的文字?

问题描述

如何将一列字符转换为

c("0 y", "0 m", "23 d", "0 y",  "0 m", "8 d")

转化为数值

c(0, 0, 23, 0, 0, 0)

我正在谈论的例子

在此处输入图像描述

另一个有一些个位数日期的例子

在此处输入图像描述

标签: rregex

解决方案


假设 y 和 m 始终为 0

Oy.date.diff <- c("0 y, 0 m, 12 d", "0 y, 0 m, 13 d", "0 y, 0 m, 12 d", "0 y, 0 m, 15 d") 
as.numeric(gsub(" d", "", gsub("0 y, 0 m, ", "", Oy.date.diff)))
# [1] 12 13 12 15

请注意,R 不允许变量(或列)以数字开头,因此第一个字符是大写字母 O。


推荐阅读