r - fix.by(by.x, x) 中的错误:“by”必须匹配列数 fix.by(by.x, x) 中的错误:“by”必须匹配列数
问题描述
我有一个数据框 df_forecast,包含按日期划分的消费数据。缺少某些日期。所以我想创建另一个数据框,考虑 df_forecast 的开始日期和结束日期并用连续日期填充它,然后用 df_forecast 左连接并考虑缺失日期的最后一个日期值。所以我写了以下代码
startDate=min(df_forecast$Date1)
endDate=max(df_forecast$Date1)
dateSeq=seq(as.Date(startDate), as.Date(endDate), by="days")
df_date=data.frame(dateSeq)
但是,当我尝试使用以下代码将 df_date 与 df_forecast 合并时
merge(df_date,df_forecast,by.x=dateSeq,by.y=Date1,all.x=True)
我收到错误消息
Error in fix.by(by.x, x) : 'by' must match numbers of columns Error in fix.by(by.x, x) : 'by' must match numbers of columns
Error in fix.by(by.x, x) : 'by' must match numbers of columns
merge by 中的两个变量都是 Date 数据类型。你能建议我如何解决这个问题或任何替代方法吗?
解决方案
您需要将列称为字符串。对于合并,如果您添加列本身,它会将其解释为列名数组。
要合并的列可以由名称、数字或逻辑向量指定:名称“row.names”或数字 0 指定行名称。如果按名称指定,它必须唯一对应于输入中的命名列。
merge(df_date,df_forecast,by.x='dateSeq',by.y='Date1',all.x=True)
R 在这方面往往非常不一致,因此始终通过尝试耦合的不同方式引用列来进行调试。
推荐阅读
- android - Flutter 平台特定依赖项
- c - 如何获得所需的输出?
- python - 如何从间隔 x 的图像数组生成点网格?
- variables - 如何判断游戏玩家作弊的方式?
- git - 当链接仍然相同时,如何解释“存储库已移动”?
- php - Php Rest API:创建用&符号分隔的数组的问题
- python-3.x - 从 API 定位输出文本
- python - 在 Kickstart 警报挑战中出现 TLE 错误,Gooogle KickStart 2019
- python-3.x - 有什么理由不以这种方式将字符串转换为列表?
- java - 用户'root'@'localhost'的Spring Boot MySql访问被拒绝