r数据处理

R 报错:must be a vector, not a data frame(传了数据框当参数)

函数要一个向量,你给了一个数据框。常见于把整列取成了 df["col"](还是数据框)而不是 df[["col"]](向量)。

报错原文

Error: `x` must be a vector, not a data frame.

为什么会报这个错

函数要一个向量,你给了一个数据框。常见于把整列取成了 df["col"](还是数据框)而不是 df[["col"]](向量)。

怎么解决

用 df[["col"]] 或 df$col 取向量;dplyr::pull(df, col) 也可以。

代码示例

class(df["x"])   # data.frame
class(df[["x"]]) # numeric

mean(df[["x"]], na.rm = TRUE)
mean(dplyr::pull(df, x), na.rm = TRUE)

同工具的其他报错

报错解决了,但方法还没搞懂?

报错只是表象。因果推断、面板数据、稳健性检验这些方法背后的逻辑,知识库里按「原理 × 直觉 × 代码」讲清楚了。

进入知识库 →