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

R语言中如何基于数据框其他列的存在值生成指定新列

你可以使用R语言tidyverse套件中的pivot_longer函数完成宽表转长表的需求,完整实现方案如下:

前置依赖

先安装加载所需包:

# 未安装可先执行 install.packages("tidyverse")
library(tidyverse)
library(lubridate)

处理代码

result_df <- sample_df %>%
  # 宽表转长表:将所有月份列映射为time、sum两列
  pivot_longer(
    cols = -project,
    names_to = "time",
    values_to = "sum"
  ) %>%
  # 过滤无金额的N/A记录
  filter(sum != "N/A") %>%
  # 将金额转为数值格式
  mutate(sum = as.numeric(sum)) %>%
  # 筛选2020年1月~2021年10月范围内的记录
  mutate(month = ym(time)) %>%
  filter(
    month >= ymd("2020-01-01"),
    month <= ymd("2021-10-31")
  ) %>%
  # 保留需要的输出列
  select(project, time, sum)

输出验证

执行后result_df的结构就和你期望的输出格式完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:15:05