R语言创建PCoA绘图数据框报「行数不一致」错误如何解决?
PCoA构建数据框报错解决方案
报错原因
你遇到的行数不匹配报错核心出在Sample=rownames(data_env$Sites)的写法上:
data_env$Sites是存储179个站点标签的一维向量/因子,R中一维向量没有rownames属性,因此rownames(data_env$Sites)返回的是空值(长度为0),和后续179个坐标点的长度不匹配,触发报错。- 报错信息中出现的
mds.values属于代码运行过程中的变量残留,不是当前报错的核心诱因,无需额外处理。
解决方案
根据你数据的存储情况二选一即可:
- 如果站点标签直接存储在
data_env$Sites列中,直接提取该列即可:
mds.df <- data.frame(Sample = data_env$Sites, X = mds$points[,1], Y = mds$points[,2])
- 如果站点标签是
data_env数据框的行名,而非单独列,直接提取数据框的行名即可:
mds.df <- data.frame(Sample = rownames(data_env), X = mds$points[,1], Y = mds$points[,2])
校验方法
赋值前可以先运行以下代码核对各字段长度是否一致,避免后续出错:
# 核对样本标签长度 length(data_env$Sites) # 若使用行名则改为 length(rownames(data_env)) # 核对坐标点长度 length(mds$points[,1])
内容的提问来源于stack exchange,提问作者CuriousDude
相关产品推荐
相关产品推荐

