如何将丹麦超级联赛DataFrame中多轮赛事日期合并为单列?
将丹麦足球超级联赛赛事数据的多轮次日期列合并为单列
核心方法:宽表转长表
用tidyverse工具包中的pivot_longer()函数可以快速把分散在33列的日期合并到单列,操作简单适合新手。
步骤1:安装并加载工具包
如果还没装tidyverse,先执行安装命令:
install.packages("tidyverse")
加载包:
library(tidyverse)
步骤2:合并日期列
假设你的数据集名为superliga_data,且所有轮次列名称以Runde开头(比如Runde 1、Runde 2...Runde 33),执行以下代码:
# 转换为长表,合并日期列 superliga_long <- superliga_data %>% pivot_longer( cols = starts_with("Runde"), # 自动匹配所有轮次列 names_to = "赛事轮次", # 存储原轮次列名的新列 values_to = "比赛日期", # 合并所有日期的新列 values_drop_na = TRUE # 可选:过滤无日期的空行,按需启用 )
参数说明
cols = starts_with("Runde"):自动选中所有以Runde开头的列,无需手动输入33个列名,避免出错names_to:自定义轮次信息的列名,可根据需求修改values_to:自定义合并后日期列的名称,可根据需求修改values_drop_na = TRUE:如果部分轮次尚未开赛、日期为空,启用这个参数可以自动过滤掉这些空行,不需要的话可以删除该行
特殊情况处理
如果你的轮次列命名规则不是以Runde开头(比如R1、R2),可以把cols参数改成匹配列名的正则表达式:
cols = matches("^R\\d+") # 匹配以R加数字开头的列
内容的提问来源于stack exchange,提问作者aagerbo
相关产品推荐
相关产品推荐

