R语言提取嵌套数据框中最大SFT.R.sq对应的Power值方法咨询
错误原因
你代码返回空值的问题和嵌套结构无关:max(sft$fitIndices$SFT.R.sq)返回的是SFT.R.sq列的数值最大值0.85,而非最大值对应的行索引。R中用数值对向量取索引时会默认向下取整为整数,0.85向下取整为0,因此返回空的integer(0)。
正确实现方案
方法1:单最大值场景(效率最高)
使用which.max()直接获取最大值对应的行索引,再提取对应Power值:
target_power <- sft$fitIndices$Power[which.max(sft$fitIndices$SFT.R.sq)]
运行后得到的结果为10,和表格中SFT.R.sq最大值0.85对应的Power值一致。
方法2:多最大值场景(兼容多个相同最大值的情况)
用逻辑匹配筛选所有SFT.R.sq等于最大值的行,提取对应Power值:
max_r_sq <- max(sft$fitIndices$SFT.R.sq) target_power <- sft$fitIndices$Power[sft$fitIndices$SFT.R.sq == max_r_sq]
如果存在多个行的SFT.R.sq均为最大值,该方法会返回所有对应的Power值。
内容的提问来源于stack exchange,提问作者CuriousDude
相关产品推荐
相关产品推荐

