将扩展名为 .data 的文件读入 R

Posted

技术标签:

【中文标题】将扩展名为 .data 的文件读入 R【英文标题】:Read files with extension .data into R 【发布时间】:2014-02-01 19:50:36 【问题描述】:

我需要将一个数据文件读入 R 以完成我的作业。您可以从以下站点下载它。

http://archive.ics.uci.edu/ml/datasets/Acute+Inflammations

数据文件以我从未见过的扩展名 .data 结尾。我尝试了 read.table 等,但无法正确地将其读入 R 。有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

我也为文件“.data”而苦苦挣扎,但我做得很好。这是我的代码:

df

我希望这段代码可以帮助你和其他人很多。

【讨论】:

【参考方案2】:

以上回复非常有用。 有点棘手的方法是您可以将文件名或文件类型重命名为 .csv 格式。 然后使用 read.csv 命令就可以完成剩下的工作了。

【讨论】:

【参考方案3】:

你有一个 UTF-16LE 文件,也就是 Windows 上的 Unicode(如果你在那个操作系统上)。 试试这个

f <-file("http://archive.ics.uci.edu/ml/machine-learning-databases/acute/diagnosis.data", open="r" ,encoding="UTF-16LE")
data <- read.table(f, dec=",", header=F)

尽管尝试@Gavin Simpson 所说的可能会有所帮助,因为您可以添加标题并保存文件

【讨论】:

【参考方案4】:

这是一个 UTF-16 little endian 文件,开头有一个字节顺序标记。 read.table 将失败,除非您指定正确的编码。这适用于我在 MacOS 上。小数用逗号表示。

read.table("diagnosis.data", fileEncoding="UTF-16", dec=",")

      V1  V2  V3  V4  V5  V6  V7  V8
1   35.5  no yes  no  no  no  no  no
2   35.9  no  no yes yes yes yes  no
3   35.9  no yes  no  no  no  no  no

【讨论】:

【参考方案5】:

来自您的链接:

数据在 ASCII 文件中。属性由 TAB 分隔。

因此您需要将read.table()sep = "\t" 一起使用

-- 属性行:例如,'35,9 no no yes yes yes yes no' 其中:'35,9' 患者体温 'no' 出现恶心 '否' 腰痛 '是' 排尿(持续需要排尿) '是' 排尿疼痛 '是' 尿道灼痛、瘙痒、肿胀 尿道出口“是”的决定:膀胱炎症 “否”决定:肾盂起源的肾炎

看起来它使用逗号作为小数点,所以还要在read.table() 中指定dec = ","

看起来您需要手动输入列标题,尽管您的链接定义了它们。

确保您在下面看到 @Gavin Simpson 的评论,以清理此数据集的其他未记录的“功能”。

【讨论】:

我无法使用 read.table 或 readLines 读取文件。文件开头也有一些流氓字符。 这可能会也可能不会。我在我的文本编辑器中看到"15:56:01: The file "~/Downloads/diagnosis.data" is not valid UTF-8.",这导致read.table() 在我的Linux 机器上出错。在编辑器中打开文件,将编码设置为 UTF-8 并重新保存,允许我使用 read.table("~/Downloads/diagnosis.data", sep = "\t", dec = ",") 读取文件。 分隔符在某些 .data 文件中有“,”。因此可以使用data &lt;-read.table (file.choose (), fileEncoding =" UTF-8 ", sep =", ")。我就是这样用的。如果我不这样做,我会在每列的末尾看到一个额外的“,”。

以上是关于将扩展名为 .data 的文件读入 R的主要内容,如果未能解决你的问题,请参考以下文章

vim-扩展命令行模式

vim-扩展命令行模式

excel提示 打开的文件.xls的格式与文件扩展名不一致怎么办

无法将 unicode .csv 读入 R

扩展 R 中的内存大小限制

将文件重命名为哈希和扩展名