R语言Parquet数据框设最后一列为行名时出现行名长度错误的解决
解决行名设置错误的方案
问题原因
虽然df和meth_gene最后一列的行数都是867,但meth_gene[,ncol(meth_gene)]返回的是单列数据框,而非设置行名所需的向量类型,结构不匹配导致报错。
修正代码
有两种简洁的修正方式:
- 提取列时添加
drop=TRUE强制转为向量:
meth_gene <- read_parquet("meth_genesymbol.parquet.gz") df <- meth_gene[,-ncol(meth_gene)] rownames(df) <- meth_gene[,ncol(meth_gene), drop=TRUE]
- 使用
[[直接提取向量(推荐,更直观):
meth_gene <- read_parquet("meth_genesymbol.parquet.gz") df <- meth_gene[,-ncol(meth_gene)] rownames(df) <- meth_gene[[ncol(meth_gene)]]
验证方法
执行代码后,可通过以下命令确认行名设置成功:
# 检查行名长度与数据框行数是否一致 length(rownames(df)) == nrow(df)
内容的提问来源于stack exchange,提问作者melolilili
相关产品推荐
相关产品推荐

