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

R语言构建节假日预测器Dataframe:代码问题求助

问题解决:为时间戳DataFrame添加布尔型节日/生日列

你的R函数存在ifelse语句使用错误,导致无法正确生成布尔型列,同时可以通过相同逻辑添加圣诞节列。以下是修正后的代码和说明:

错误点说明

原函数里的ifelse(df$MONTH_DAY == "01-09", df$MY_BDAY = 1, df$MY_BDAY = 0)写法有误,ifelse是返回值型函数,不能在分支内直接赋值,需将ifelse的计算结果整体赋值给目标列。

修正后的完整函数

create_dataframe_predictors <- function(df) {
  # 提取月日部分(自动忽略时分秒)
  df$MONTH_DAY <- format(as.Date(df$DATE), "%m-%d")
  
  # 生成生日布尔列:匹配01-09则为1,否则为0
  df$MY_BDAY <- ifelse(df$MONTH_DAY == "01-09", 1, 0)
  
  # 生成圣诞节布尔列:匹配12-25则为1,否则为0
  df$CHRISTMAS <- ifelse(df$MONTH_DAY == "12-25", 1, 0)
  
  return(df)
}

测试示例

先构造仅含datetime列的初始数据:

# 构造初始测试DataFrame
df <- data.frame(
  DATE = as.POSIXct(c(
    "2022-01-01 00:00:00",
    "2022-01-01 01:00:00",
    "2022-01-09 00:00:00",
    "2022-01-09 00:00:00",
    "2022-12-25 00:00:00",
    "2022-12-25 01:00:00"
  ))
)

# 调用函数处理数据
df <- create_dataframe_predictors(df)

运行结果

DATEMONTH_DAYMY_BDAYCHRISTMAS
2022-01-01 00:00:0001-0100
2022-01-01 01:00:0001-0100
2022-01-09 00:00:0001-0910
2022-01-09 00:00:0001-0910
2022-12-25 00:00:0012-2501
2022-12-25 01:00:0012-2501

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:09:28