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

如何用R语言对Dataframe进行Pivot重塑以匹配目标格式

R语言实现Dataframe结构转换(基于Pivot操作)

首先模拟符合你描述的原始数据结构:

library(tidyverse)

# 模拟原始数据(ID列+带`-`的特征列,列值为字母)
original_df <- tibble(
  ID = c("X1", "X2", "X3"),
  "shape-circle" = c("Y", "N", "Y"),
  "shape-square" = c("N", "Y", "N"),
  "material-plastic" = c("Y", "Y", "N"),
  "material-metal" = c("N", "N", "Y")
)

针对你需要的目标格式,通过两次pivot操作+列名拆分即可实现:

# 转换为目标格式
target_df <- original_df %>%
  # 第一步:将宽表转成长表,收拢特征列名与对应值
  pivot_longer(
    cols = -ID,
    names_to = "combined_feature",
    values_to = "feature_value"
  ) %>%
  # 第二步:按`-`拆分合并的特征列名为两个独立字段
  separate(
    col = combined_feature,
    into = c("feature_type", "feature_detail"),
    sep = "-"
  ) %>%
  # 第三步:按需转回宽表(若目标格式是将具体特征项作为列)
  pivot_wider(
    names_from = feature_detail,
    values_from = feature_value
  )

关键步骤说明

  • pivot_longer:把分散在多列的特征数据收拢为长表结构,为拆分列名做准备
  • separate:利用列名中的-分隔符,将合并的特征信息拆分为「特征类别」和「具体特征项」
  • pivot_wider:如果目标格式要求把具体特征项作为列(比如circle、square作为列)则执行此步;若目标是纯长表,可直接省略

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 08:33:37