R rbind错误row.names不允许重复

Jec*_*geo 9 r no-duplicates rbind

这里还有其他问题可以解决同一个问题,但我没有意识到如何在此基础上解决我的问题.所以,我有5个数据帧,我想使用rbind合并一个唯一数据框中的行,但它返回错误:

"错误row.names<-.data.frame(*tmp*,值=值):'row.names'重复不允许另外:警告消息:设置'row.names'时的非唯一值:'1','10','100','1000 ','10000','100000','1000000','1000001 [....]"

数据框具有相同的列但行数不同.我认为rbind命令将第一列作为row.names.因此尝试在五个数据框中放置一个顺序ID,但它不起作用.我试图通过row.names()在数据框中指定顺序行名,但也没有成功.合并命令不是我认为的选项,因为5个数据帧和连续的合并将覆盖先例.我只使用id创建了一个新数据框并试图加入,但结果数据框不会附加连接df的列.

关注df 1的摘录:

  id    image     power     value pol class
1  1 tsx_sm_hh 0.1834515 -7.364787  hh    FR
2  2 tsx_sm_hh 0.1834515 -7.364787  hh    FR
3  3 tsx_sm_hh 0.1991938 -7.007242  hh    FR
4  4 tsx_sm_hh 0.1991938 -7.007242  hh    FR
5  5 tsx_sm_hh 0.2079365 -6.820693  hh    FR
6  6 tsx_sm_hh 0.2079365 -6.820693  hh    FR
[...]
1802124 1802124 tsx_sm_hh 0.1991938 -7.007242  hh    FR  
Run Code Online (Sandbox Code Playgroud)

另外四个df是相同的结构,除了'id'列之外没有重复的数字.'pol'和'image'列定义为级别.并all.pol <- rbind(df1,df2,df3,df4,df5)返回row.names重复的此错误.

任何的想法?

提前致谢

小智 21

我最近遇到了同样的错误.结果是我的问题是数据框的一个属性是列表.将它投射到基本对象(例如数字)后rbind工作得很好.

顺便说一句,行名是第一个变量左边的"行号".在您的示例中,它是1,2,3,...(与您的id变量相同).

您可以使用rownames(df)并使用它来设置它rownames(df) <- name_vector(name_vector必须具有相同的长度,df并且其元素必须是唯一的).


use*_*745 7

我有同样的错误。

我的问题是dataframes 中的一列本身就是一个 dataframe无法轻松找到有问题的专栏

data.table::rbindlist()帮助找到它

library(data.table)
rbindlist(a)
# Error in rbindlist(a) : 
#   Column 25 of item 1 is length 2 inconsistent with column 1 which is length 16. Only length-1 columns are recycled.


a[[1]][, 25] %>% class # "data.frame" K- this should obviously be converted to a column or removed
Run Code Online (Sandbox Code Playgroud)

删除错误列后do.call(rbind, a)按预期工作

  • 这也是我的错误,但我通过检查 str(a) 发现它没有 data.table (3认同)