替换 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", "")
我有一个数据框,其中包含因子列 "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", "")