我显然是来自FORTRAN的.DAT file。我试过了:
read.fortran("ANDRICH.DAT",header = TRUE, format="8F1.0")
但不起作用。我收到以下错误消息:
Error in read.table(file = FILE, header = header, sep = sep,
row.names = row.names, :
more columns than column names
有什么想法吗? 提前谢谢!
数据文件如下:
$ 8
$ HIDEOUS
$ LIFESACRED
$ INEFFECTIV
$ DONTBELIEV
$ WISHNOTNEC
$ MUSTHAVEIT
$ DETERRENT
$ CRIMDESERV
$ (8f1.0)
01100000
01100000
01100000
01100000
答案 0 :(得分:3)
根据一些谷歌搜索:
“这些数据的FORTRAN输入格式为(8F1.0),其中”F1.0“表示 变量存储在一列中,并且没有隐式 小数点。重复此格式,没有任何空间8次 数据集中有8个变量。“
跳过第一行直到您点击实际数据,然后使用文件8F1.0
中指定的格式:
output <- read.fortran("ANDRICH.DAT", format="8F1.0", skip=10)
您可以使用readLines
获取姓名:
names(output) <- gsub("\\$ ","",readLines("ANDRICH.DAT",n=9)[-1])
结果:
# HIDEOUS LIFESACRED INEFFECTIV DONTBELIEV WISHNOTNEC MUSTHAVEIT DETERRENT CRIMDESERV
#1 0 1 1 0 0 0 0 0
#2 0 1 1 0 0 0 0 0
#3 0 1 1 0 0 0 0 0
#4 0 1 1 0 0 0 0 0
#etc
答案 1 :(得分:1)
这是文件的顶部:
$ 8
$ HIDEOUS
$ LIFESACRED
$ INEFFECTIV
$ DONTBELIEV
$ WISHNOTNEC
$ MUSTHAVEIT
$ DETERRENT
$ CRIMDESERV
$ (8f1.0)
01100000
01100000
01100000
01100000
11100000
11100000
11100000
11100000
11100000
11100000
11100000
11100000
11100000
我不知道为什么它会成为&#34; FORTRAN文件&#34;。看起来是一个文件,其标题由美元符号分隔,第一个条目为fiels,然后是N行为名称,然后是固定宽度文件。
如果跳过前10行,然后使用宽度= 1的read.fwf,你应该能够获得成功。