我是R的新手,想要读取一个csv文件 . 但是当我尝试阅读它时,我收到了错误 . 我的csv文件如下:
,Zbot,Sirefef,Fareit,Winwebsec,FakeSysdef,Winwebsec,Winwebsec,Winwebsec,Fareit,Fareit,Sirefef,Winwebsec,Winwebsec,Winwebsec,Winwebsec
Zbot,0,134,45,651,182,245,986,64,63,34,134,166,52,337,225
Sirefef,142,0,124,679,200,273,1018,156,125,122,164,198,120,371,257
Fareit,48,124,0,644,166,234,978,82,64,51,135,167,49,338,224
Winwebsec,651,499,470,0,575,556,1087,525,490,485,501,511,483,600,582
FakeSysdef,178,172,143,535,0,311,1052,196,163,152,204,234,154,405,285
Winwebsec,245,199,168,478,229,0,997,217,186,183,199,209,183,348,272
Winwebsec,986,752,719,821,784,727,0,774,739,734,750,760,734,851,829
Winwebsec,80,160,85,506,179,204,757,0,100,85,173,205,89,376,264
Fareit,65,95,32,468,141,164,715,78,0,57,135,165,59,336,226
Fareit,52,122,51,468,143,166,717,68,40,0,135,163,49,336,224
Sirefef,136,118,85,449,150,147,696,123,83,83,0,146,100,317,207
Winwebsec,164,138,105,449,170,145,696,143,103,103,80,0,118,315,215
Winwebsec,52,116,51,466,143,166,717,66,42,32,83,103,0,336,226
Winwebsec,335,267,234,496,301,246,745,272,232,234,213,213,234,0,346
Winwebsec,225,204,171,519,228,217,774,207,169,169,150,160,169,291,0
当我在RStudio中使用此命令时,我收到错误:命令:
> tb = read.csv("/home/hossein/Documents/LiClipse Workspace/test.csv", row.names = 1);
错误:
read.table出错(file = file,header = header,sep = sep,quote = quote,:'row'names'不允许
我也尝试删除错误并使用此命令:
> tb = read.csv("/home/hossein/Documents/LiClipse Workspace/test.csv", row.names = NULL);
但是当我查看输出时,它无法保持方阵的结构 . 你能帮我一下,我该怎么办?
3 回答
您可以通过以下几个简单步骤完成此操作:
这保持了你的方阵:
R不支持重复的行名,请参阅
?row.names
:鉴于此,您可以导入数据,然后使用
make.names
函数使行名称唯一 . 这有点难看,但我认为它解决了你的问题 . 请参阅下面的示例以及您提供的数据 .第一行以空白字段开头,因此使用
skip = 1
参数可能很方便,因为read.csv
不能将输入函数理解为矩形数组 .