这类似于read.csv row.names和https://stackoverflow.com/questions/12425599/duplicated-row-names,但我看不到有帮助的答案。
问题:尝试读取第一列中包含重复数字的文件,但在row.names = NULL时移动列标题。
我正在尝试将以下文件读入R
TripId VID TspVID VWT VCLS Week
201110041426 2226 33889 1 0 41
201110041501 2226 33889 1 0 41
201110041510 2226 33889 1 0 41
201110041557 2226 33889 1 0 41
(这是一个包含数千行和~200列的CSV文件的Excel摘录。第一行中的条目数与其他所有条目数相同。第一行中有重复项。列不与此视图中的标签对齐,但它们在CSV空间中排列。)
命令
> lm.table <- read.table(file= file.in, sep=",", header=TRUE)
Error in read.table(file = file.in, sep = ",", header = TRUE) :
duplicate 'row.names' are not allowed
不起作用。对row.names使用第一列意味着第一行的值少于其他行,但情况并非如此。我当然不希望第一列为row.names。
我尝试设置row.names = NULL
> lm.table <- read.table(file= file.in, sep=",", header=TRUE, row.names=NULL)
运行,但列已移位
> head(lm.table)
row.names TripId VID TspVID VWT VCLS Week Date TimeStart TimeEnd Lat1
1 201110010006 2226 33889 1 0 40 2011/09/30 17:06:37 17:25:16 47.5168 -122.209
2 201110010028 2226 33889 1 0 40 2011/09/30 17:28:45 17:43:14 47.5517 -122.058
3 201110010000 2231 45781 1 0 40 2011/09/30 17:00:00 18:02:30 32.9010 -117.193
4 201110011407 2231 45781 1 0 40 2011/10/01 07:07:57 07:48:17 32.7044 -117.004
请注意,新的列名称“row.names已被引入,整个行向右移动。
这是&gt;的尾端。头(lm.table)结果。它将列标签移动到未定义的列上(我认为这也显示了列标签的数量=列数,从检查中也是如此。)
FVavR FVstdR FIdlR
1 3.959140 2 NA
2 5.285770 20 NA
3 4.274140 26 NA
我知道为什么我会在列中进行移位以及如何不移位并使row.names只是递增数字?
答案 0 :(得分:7)
有同样的问题。刚添加这一行:
colnames(rec) <- c(colnames(rec)[-1],"x")
rec$x <- NULL
答案 1 :(得分:0)
我使用了以下代码:
lm.table <- read.table("file name", header=TRUE, row.names=NULL)
这在左侧添加了一个带有编号行名称的列,但我没有发现列名已被移位。可能是你的列名仍然匹配正确的列,但R输出使它看起来像名字已经移位?
答案 2 :(得分:0)
我的问题与TAB分隔文件的字段分隔符相关联:
如果我没有指定字段分隔符:
> condensed <- read.table("condense_report.tab", header=T)
Error in read.table("condense_report.tab", header = T) :
duplicate 'row.names' are not allowed
如果我添加sep = TAB
condensed <- read.table("condense_report.tab", header=TRUE, sep="\t")
然后没有错误消息。
这是我的文件内容(^我是TAB字符,$是行标记的结尾):
样品^ Imethod ^ Ispecies ^ Imean_frac ^ Istd_frac ^ Imean_dep ^ Imean_clsz ^ Inumrep $ asterix_potion ^ Imothur ^ IEnterococcus faecalis ^ I0.32290000 ^ I0.021755985650701942 ^ I3293.5000 ^ I3309.7500 ^ I4 $ asterix_potion ^ Imothur ^ IAcinetobacter baumannii ^ I0.28010000 ^ I0.021539851624928375 ^ I2869.5000 ^ I2880.7500 ^ I4 $
问题在于物种专栏。它有空格,R默认使用空格和制表符作为分隔符。因此,如果没有给出sep选项,则根据R有一个额外的列而不是标题。这是问题的根源。
答案 3 :(得分:0)
如果其他任何人遇到此问题,我的问题是某些列中有空格。填充完这些空间后,我的问题消失了,我可以很好地加载.csv文件。