替换 R 列中的字符串

Replace strings in R column

我有一个数据框,其中包含因子列 "Year"。

"Year" 中的观察结果如下所示:

 y1995 
 y1995
 y1997
 y1997
 y1999
 y2007
 y1995

等等

我想最终将 "Year" 转换为 class 整数。但是,首先,我需要从每个观察中删除 "y",以便数据采用以下形式:

 1995 
 1995
 1997
 1997
 1999
 2007
 1995

等等

年份均在y1995-y2007区间内。

我该怎么做?

您可以尝试sub删除第一个非数字元素。

df1$Year <- as.numeric(sub('y', '', df1$Year, fixed=TRUE))

数据

df1 <- data.frame(Year=paste0('y', c(1995, 1995, 1997, 1997, 1999, 2007,
           1995)))

这有一个简单的解决方案:

temp <- sub("y", "", df$Year)

如果您想替换旧矢量:

df$Year <- sub("y", "", df$Year)

之后,如果您想将该列转换为数字(它仍将包含字符串,尽管您无法立即看到它):

df$Year <- sub("y", "", df$Year)
df$Year <- as.numeric(df$Year)

您可以尝试使用包 stringr 中的函数 str_replace

Year <- str_replace(Year, "y", "")