【问题标题】:`data` must be a data frame, or other object coercible by `fortify()`, not a character vector`data` 必须是数据框,或其他可被 `fortify()` 强制转换的对象,而不是字符向量
【发布时间】:2022-12-10 16:38:28
【问题描述】:

这是一道 R 题,这里是 Kaggle 中的错误: “!数据必须是数据框,或其他可由 fortify() 强制转换的对象,而不是字符向量。”

下面是我在 Kaggle 中对我不起作用的部分代码,我想解决这个问题。该代码可在 Rstudio 中使用,也可在将其打包成 PDF 文件时使用。在 Kaggle 中成功加载的库以及 CSV 文件。 这是将其转换为 CSV 文件之前的样子:Data frame

对此有任何帮助将不胜感激! 如果我遗漏了本应在此处提供的任何信息,请告诉我。

谢谢!

D.REQ.BDR = "../kaggle/input/housing-register-project-1/D.REQ.BDR.csv"
ggplot(D.REQ.BDR, aes(x=Bedrooms_Required, y=June_22))+     
  geom_col()

编辑 1: class(D.REQ.BDR)

编辑 2: 使用以下行:

D.REQ.BDR <- vroom::vroom("../kaggle/input/housing-register-project-1/D.REQ.BDR.csv")

结果如下: 错误:当前工作目录(“/kaggle/working”)中不存在“../kaggle/input/housing-register-project-1/D.REQ.BDR.csv”。

【问题讨论】:

  • class(D.REQ.BDR) 在 Kaggle 上执行时表示什么?
  • 你如何阅读那个csv文件?我可以向您保证,仅将文件路径作为字符串传递到 ggplot2 中也会在 R Studio 中导致相同的错误。
  • 嗨 Dunois,谢谢你的回复。上面我添加了运行类(D.REQ.BDR)的结果图片。如您所见,它只是说“性格”。
  • 嗨 Merijin,这是我第一次使用 Kaggle。通常我只使用 Rstudio,它使用 .RData 文件来保存所有数据帧,并且数据帧不会以相同的方式加载。因为 Kaggle 无法读取 .RData 文件,所以我将每个数据帧转换为单独的 .CSV 文件。转换后,我将所有 CSV 文件上传到 Kaggle。我在上面使用的路径是 Kaggle 本身为文件提供的粘贴路径。

标签: r kaggle


【解决方案1】:

您正在尝试 ggplot() 一个字符向量

有问题的字符向量是您的数据的路径 - 它在您系统上的地址。想象你的数据是一个人;您想敲开他们的门并采访他们,但现在您所拥有的只是他们的地址。您无法访问地址,但可以使用它来获取您想要的内容。

您需要做的就是读取存储在该地址的 csv,然后 ggplot() 输出,如下所示:

## vroom is a useful function for reading data tables
my_data <- 
  vroom::vroom("../kaggle/input/housing-register-project-1/D.REQ.BDR.csv")

ggplot(my_data, 
       aes(x = Bedrooms_Required, y = June_22))+     
  geom_col()

没有可重现的例子,我们不能确定上面的方法是否有效。但是这些原则应该足以让您朝着正确的方向前进。

【讨论】:

  • 嗨 Captain Hat,我尝试了这个建议并添加了我在上面的编辑中使用的代码。
最近更新 更多