问题描述
我正在尝试使用 .dat
命令从 Internet 上的 read.table
文件导入数据集。我通常在格式化文件时没有问题,例如:
A B
1 2
3 4
但是这个数据集是格式化的
A B A B
1 2 3 4
5 6 7 8
(您可以在此处找到我遇到问题的数据集:https://www2.isye.gatech.edu/~jeffwu/book/data/BrainandBodyWeight.dat)
我当前的代码行是:
Data2 = read.table("https://www2.isye.gatech.edu/~jeffwu/book/data/BrainandBodyWeight.dat",header = TRUE)
我得到的错误是:
扫描错误(文件=文件,内容=内容,sep=sep,quote=quote,dec = dec,: 第 1 行没有 12 个元素
解决方法
问题是标题行中有空格,所以只需用 skip = 1
跳过它。
从那里,我们可以使用重复的逻辑向量 c(TRUE,FALSE)
和 c(FALSE,TRUE)
提取偶数行和奇数行。
数据的最后一行有一些空值,所以用 complete.cases()
删除它们。
data <- read.table("https://www2.isye.gatech.edu/~jeffwu/book/data/BrainandBodyWeight.dat",header = FALSE,fill = TRUE,skip = 1)
result <- data.frame(Body.Wt = unname(unlist(data[,c(T,F)])),Brain.Wt = unname(unlist(data[,c(F,T)])))
result <- result[complete.cases(result),]
head(result)
Body.Wt Brain.Wt
1 3.385 44.5
2 0.480 15.5
3 1.350 8.1
4 465.000 423.0
5 36.330 119.5
6 27.660 115.0