R语言dataframe中查找特定值对应行名与列名的更优实现方法
R查找DataFrame指定值对应行列名的优化方案
你可以直接使用which()函数的arr.ind = TRUE参数一步获取匹配位置的行列索引,比你当前两次计算行列和的写法更简洁,对大表的计算效率也更高:
# 一步获取匹配位置的行列索引 match_pos <- which(df == 5, arr.ind = TRUE) # 拼接输出结果 paste("row:", rownames(df)[match_pos[, "row"]], "column:", colnames(df)[match_pos[, "col"]])
运行后直接得到你需要的输出:row: 200 column: b
如果偏好单行写法也可以直接合并为:
paste("row:", rownames(df)[(p <- which(df == 5, T))[,"row"]], "column:", colnames(df)[p[,"col"]])
该方案还天然支持目标值多次出现的场景,会自动返回所有匹配位置对应的行列名。
内容的提问来源于stack exchange,提问作者U13-Forward
相关产品推荐
相关产品推荐

