当前位置:  开发笔记 > 编程语言 > 正文

R:pi [[j]]中的错误:下标超出范围-数据框列表上的rbind

如何解决《R:pi[[j]]中的错误:下标超出范围-数据框列表上的rbind》经验,为你挑选了1个好方法。

我正在尝试rbind一个大型数据帧列表(outputDfList),该列表是通过将一个复杂的函数应用到大型表而生成的。您可以通过以下方式重新创建outputDfList:

df1=data.frame("randomseq_chr15q22.1_translocationOrInsertion", "chr15", "63126742")
names(df1)=NULL
df2=df1=data.frame("chr18q12.1_chr18q21.33_large_insertion", "chr18 ", "63126741")
names(df2)=NULL
outputDfList=list(df1,df2)

我的代码是

do.call(rbind, outputDfList)

我收到的错误消息:

Error in pi[[j]] : subscript out of bounds

我仔细检查了每个数据框的列号,它们都相同。我还尝试使用“ options(error = recover)”进行调试,但是我对它的熟悉程度不足以解决确切的问题。任何帮助表示赞赏。谢谢。



1> Konrad Rudol..:

更新之后,看来您的问题是列名无效:数据框列名必须为非空。

更正此错误后,代码即可工作:

for (i in seq_along(outputDfList)) {
    colnames(outputDfList[[i]]) = paste0('V', seq_len(ncol(outputDfList[[i]])))
}

do.call(rbind, outputDfList)
#                                       V1     V2       V3
# 1 chr18q12.1_chr18q21.33_large_insertion chr18  63126741
# 2 chr18q12.1_chr18q21.33_large_insertion chr18  63126741

但是,我很困惑这种情况最初是如何发生的。此外,我在代码中收到的错误消息仍然与您的代码不同:

match.names(clabs,names(xi))中的错误:
名称与以前的名称不匹配

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有