替换R列中的字符串

时间:2015-04-07 11:07:07

标签: r string replace rename

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

"年"看起来像这样:

 y1995 
 y1995
 y1997
 y1997
 y1999
 y2007
 y1995

我想最终转换"年"进入类整数。首先,我需要放弃" y"从每个观察结果,以便数据采取以下形式:

 1995 
 1995
 1997
 1997
 1999
 2007
 1995

这些年份都在y1995-y2007的区间内。

我该怎么做?

3 个答案:

答案 0 :(得分:3)

您可以尝试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)))

答案 1 :(得分:2)

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

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

如果你想替换旧的矢量:

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

之后如果您想将该列转换为数字(它仍会保留字符串,但您仍然无法立即看到它):

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

答案 2 :(得分:0)

您可以尝试在包str_replace中使用功能stringr

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