r数据处理
R 报错:Can't combine `x` <double> and `y` <character>(类型冲突)
bind_rows() / pivot_longer() 要把多列合成一列,但类型不一致(一列数值一列字符)。R 不会自动强转,直接报错。
报错原文
Error: Can't combine `x` <double> and `y` <character>.为什么会报这个错
bind_rows() / pivot_longer() 要把多列合成一列,但类型不一致(一列数值一列字符)。R 不会自动强转,直接报错。
怎么解决
统一类型:mutate(across(everything(), as.character)),或者用 pivot_longer(..., values_transform = list(value = as.character))。
代码示例
# 全部转字符再合并
bind_rows(a, b) # 报错时
bind_rows(
mutate(a, across(everything(), as.character)),
mutate(b, across(everything(), as.character))
)
# pivot_longer 里转
pivot_longer(df, cols, values_transform = list(value = as.character))同工具的其他报错
- R 报错:Join columns must be present in data(连接键不存在)
- R 报错:All columns in a tibble must be vectors
- R 报错:Column `x` must be length 1 or n(mutate 里长度不匹配)
- R 报错:Problem with `mutate()` input `x`(管道内层报错)
- R 报错:Can't transform a data frame with duplicate names
- R 报错:`by` required, because the data sources have no common variables
报错解决了,但方法还没搞懂?
报错只是表象。因果推断、面板数据、稳健性检验这些方法背后的逻辑,知识库里按「原理 × 直觉 × 代码」讲清楚了。
进入知识库 →