我有一个数据框,其中包括因子列"年"。
"年"看起来像这样:
y1995
y1995
y1997
y1997
y1999
y2007
y1995
等
我想最终转换"年"进入类整数。首先,我需要放弃" y"从每个观察结果,以便数据采取以下形式:
1995
1995
1997
1997
1999
2007
1995
等
这些年份都在y1995-y2007的区间内。
我该怎么做?
答案 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", "")