我的计算机中有这个.csv文件,当我使用以下代码行将其导入R时:
dat <- read.table(file.choose(),sep=',', header=T)
我明白了:
X COC EG EE AC LE ME SC
1 CE 3 22 0 0 4 3 50
2 AU 21 7 1 0 0 0 15
3 WA 4 0 10 0 12 0 21
4 HH 0 12 5 0 2 1 8
5 MH 0 2 0 2 2 0 26
6 HA 8 7 3 0 1 0 8
7 TY 0 0 0 0 0 0 1
8 PK 3 0 0 0 0 0 2
9 SR 0 1 0 0 0 0 1
10 FU 0 0 0 0 0 0 2
这个很好,除了&#34; X
&#34;在行名称之上。原始文档中没有X:
,COC,EG,EE,AC,LE,ME,SC
CE,3,22,0,0,4,3,50
AU,21,7,1,0,0,0,15
WA,4,0,10,0,12,0,21
HH,0,12,5,0,2,1,8
MH,0,2,0,2,2,0,26
HA,8,7,3,0,1,0,8
TY,0,0,0,0,0,0,1
PK,3,0,0,0,0,0,2
SR,0,1,0,0,0,0,1
FU,0,0,0,0,0,0,2
如何防止这种情况&#34; X
&#34;从自动生成?
编辑:在下面的评论之后,我尝试dat <- read.table(file.choose(),sep=',', header=T, check.names=F)
,现在显示完美。
然而,事情是非常错误的(正如评论中所建议的那样)。所以,如果我做了
str(dat)
'data.frame': 10 obs. of 8 variables
何时应阅读10 obs. of 7 variables
我不明白,因为如果我用以下内容刷新记忆:
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
...在行名开始之前显然有一个空单元格......
答案 0 :(得分:0)
归功于@Richard Erickson(见评论)。感谢其他人。我在此发帖以便日后搜索同一问题:
read.table(file.choose(), row.names = 1, header=T, sep=",")
COC EG EE AC LE ME SC
CE 3 22 0 0 4 3 50
AU 21 7 1 0 0 0 15
WA 4 0 10 0 12 0 21
HH 0 12 5 0 2 1 8
MH 0 2 0 2 2 0 26
HA 8 7 3 0 1 0 8
TY 0 0 0 0 0 0 1
PK 3 0 0 0 0 0 2
SR 0 1 0 0 0 0 1
FU 0 0 0 0 0 0 2
和...
str(dat)
'data.frame': 10 obs. of 7 variables:
$ COC: int 3 21 4 0 0 8 0 3 0 0
$ EG : int 22 7 0 12 2 7 0 0 1 0
$ EE : int 0 1 10 5 0 3 0 0 0 0
$ AC : int 0 0 0 0 2 0 0 0 0 0
$ LE : int 4 0 12 2 2 1 0 0 0 0
$ ME : int 3 0 0 1 0 0 0 0 0 0
$ SC : int 50 15 21 8 26 8 1 2 1 2
所以我猜这个问题不是列,而是需要指定的行名。