You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从葡萄酒数据集title列提取年份并添加为整数列?

解决葡萄酒年份提取问题

我来帮你搞定这个从酒名里提取年份的需求~你的现有代码用了str_extract_all会返回所有数字的列表,而且没区分年份和短数字,我们可以从两个方向优化:

1. 精准匹配年份的正则表达式

葡萄酒年份一般是4位数字(19xx或20xx),所以我们可以用正则只匹配这类数字,排除像2、4这种短数字。用str_extract代替str_extract_all,因为每个酒名通常只有一个年份,这样返回的是字符向量而非列表,更适合直接作为数据框列。

正则表达式说明:

  • \\b:单词边界,确保我们匹配的是完整的4位数字,不会是其他字符串的一部分
  • (19|20):限定年份以19或20开头,覆盖绝大多数常见的葡萄酒年份范围
  • \\d{2}:匹配后面两位数字

2. 转换为整数列并添加到数据框

直接提取后转成整数类型,赋值给新列即可,不用转成列表。

完整代码示例:

library(stringr)

# 提取符合格式的年份字符
wine_tidy2$vintage_year <- str_extract(wine_tidy2$title, "\\b(19|20)\\d{2}\\b")

# 转换为整数类型
wine_tidy2$vintage_year <- as.integer(wine_tidy2$vintage_year)

特殊情况处理

如果有些酒名里没有年份,str_extract会返回NA,转成整数后还是NA,这样可以保留缺失值,方便你后续过滤或填充。

内容的提问来源于stack exchange,提问作者azmirfakkri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:26:56