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并且其元素必须是唯一的).
我有同样的错误。
我的问题是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)按预期工作
| 归档时间: |
|
| 查看次数: |
14097 次 |
| 最近记录: |