本文主要是介绍【冰糖R语言】Error in match.names(clabs, names(xi)) - 名字同原来已有的名字不相对,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在进行一些处理时,出现这样的错误提示:
原因在于,对data.frame类型进行rbind()操作时,存在不对应的列,而rbind()是对data.frame的列名进行匹配后进行行扩增的;
比如,如下定义了两个data.frame,dt1,dt2,存在不相对的列名,则会报错:
此时,如果将dt2的colnames中的F5改为F1,即与dt1列名一样但是列顺序不同,再进行rbind()操作:
可以发现,data.frame的rbind操作是根据colnames进行匹配,从而进行行扩增操作,列顺序以第一个data.frame为准;
如果将dt1,dt2的类型转为matrix再进行rbind()操作,则不存在这样的问题,会根据列对应位置进行行扩增,不受列名影响:
另,如果对data.frame进行cbind操作,是否受rownames一致性的影响呢?答:不影响
同样定义两个data.frame,dt1,dt2,设置不相对的行名,进行cbind()操作:
不存在问题,行名没有影响
data.frame是特殊的二维列表,每一列可以是不同的数据类型,这表示它被设计为列为研究对象的数据结构,在使用时一定要注意,而不能直接当做矩阵使用。
这篇关于【冰糖R语言】Error in match.names(clabs, names(xi)) - 名字同原来已有的名字不相对的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!