不允许重复的行名称

时间:2015-03-13 01:22:14

标签: r

我正在尝试将一组数据加载到R中。它是一个简单统计项目的文本文档。

flights<-read.table("flights.txt")

然而,当我这样做时,我收到错误&#34; read.table中的错误(&#34; FLIGHTS.txt&#34;):   重复&#39; row.names&#39;不允许&#34;

以下是文本文档的示例。

Flight  Plane_ID    Dep_Delay   Taxi_Out    Taxi_In_Arr_Delay
1   N338AA  -2  30  12  -32
1   N329AA  -1  19  13  -25
1   N319AA  -2  12  8   -26
1   N319AA  2   19  21  -6
1   N329AA  -2  18  17  5
1   N320AA  0   22  11  -15

我还在下划线中添加了名称,因为我收到的错误与每行中的元素数量有关。

放入row.names = NULL后我得到了这个输出

 row.names Flight Plane_ID Dep_Delay Taxi_Out Taxi_In_Arr_Delay
1          1 N338AA       -2        30       12               -32
2          1 N329AA       -1        19       13               -25
3          1 N319AA       -2        12        8               -26
4          1 N319AA        2        19       21                -6

还有一组额外的行号,它会显示row.names,有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

data.frame无法获取重复的行名称。我们可以在row.names=NULL中使用read.table,这将创建一个额外的列row.names,可以通过对数据集进行子集化来删除。

dat <- read.table('flights.txt', row.names=NULL)
dat <- dat[-1]

另一种选择是使用awk替换''中的第pipe段,然后在第4行以后的{flights} .txt&#39;,read.table中使用 dat1 <- read.table(pipe("awk 'NR >1{$1=\"\"}1' flights.txt"), header=TRUE, stringsAsFactors=FALSE) dat1 # Flight Plane_ID Dep_Delay Taxi_Out Taxi_In_Arr_Delay #1 N338AA -2 30 12 -32 #2 N329AA -1 19 13 -25 #3 N319AA -2 12 8 -26 #4 N319AA 2 19 21 -6 #5 N329AA -2 18 17 5 #6 N320AA 0 22 11 -15 {{1}}

{{1}}