2

我想使用 R 读取来自 UCI 和 Amazon 评论的数据集。

数据集采用 ARFF (.arff) 格式。

我正在使用以下脚本:

require("foreign")
setwd("H:/DataSet/amazon")
reviews <- read.arff("amazon.arff")

我收到以下错误

read.arff("amazon.arff") 中的错误:属性规范无效。

感谢您在高级方面的帮助。

4

3 回答 3

4

我假设您指的是 UCI 机器学习存储库中的“Amazon Commerce 评论集数据集”。连 Weka 都打不开这个数据集,说

“...不被识别为 'Arff 数据文件'文件。...属性名称不是唯一的。”

如果你查看文件,你会看到很多类似的条目

@attribute '\'\'\'\'\'\'\'\'\'\'r\'\'\'\'\'\'\'\'\'\'\'' numeric

所以文件出了点​​问题,这不是 R 或任何“Arff”读取例程的错。您应该询问描述页面上提供其姓名和电子邮件地址的数据集创建者。

于 2012-03-31T11:28:09.573 回答
2

我找到了让 Weka 打开 .arff 文件的解决方案。

无法将结构确定为 arff(原因:java.lang.illegalArgumentException:属性名称不是唯一的!原因:'T''T''T''T''I''I''I''I''Th' 'Th' 'Th' '类')。

不是这样的属性@attribute "'\'\'\'\'\'\'\'\'\'\'r\'\'\'\'\'\'\'\'\'\' \'' 数字”。

如果您在文本编辑器(我使用 TextMate)中打开 arff 文件,您会找到罪魁祸首。(在文本伴侣中,他们显示 < NUL > )

  • @attribute g_b numeric @attribute T numeric @attribute eing numeric @attribute T numeric @attribute rne numeric @attribute T numeric @attribute T numeric

您可以使用控制 F 来搜索“I”、“T”和“Th”的属性,但为了加快搜索速度,这里有 3 个易于搜索的属性,它们靠近问题站点。

对于“我”搜索“t_wo”,

对于“Th”搜索“ff_”

对于 'T' 搜索 'x_' (属性将在上面)

您不能简单地删除它们,因为无法知道哪些数字适用,所以我建议将它们重命名为 T2-4、I2-4 Th2-4。您还需要将属性“class”重命名为“class1”

于 2015-04-29T16:13:30.503 回答
2

在您的特定情况下,数据集有一些问题,我无法阅读它。

不确定它是否有帮助,但如果您想使用 R 读取 .arff 文件,另一种方法是使用RWeka 包

该包有一些依赖项:rJava(注 1)和 RWekajars。

然后,通过使用以下脚本,您将能够读取数据集(注 2):

library(rJava)
library("RWeka")
x <- read.arff(file= "amazon.arff")

我没有专门尝试使用您的数据集(由于它的问题),但是当使用iris.arff dataset时,它运行良好的脚本(当然,需要更改文件的名称)。


笔记

  1. 如果您碰巧对 rJava 包有任何错误,我在另一个问题上给出的这个答案可能会对您有所帮助
  2. 确保您在拥有该文件的文件夹中运行脚本。一种方法是在 RStudio 中创建一个新项目,将数据集保存在项目目录中,然后运行所需的脚本。
于 2019-05-05T18:53:03.143 回答