You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何替换数据框中行名与列名相同位置的单元格值为1

解决方法

要将数据框中行名与列名相同的单元格替换为1,可以通过生成行名和列名的匹配逻辑矩阵定位目标位置,再完成赋值操作,具体步骤如下:

步骤1:生成匹配逻辑矩阵

使用outer()函数逐一对比行名与列名是否相等,得到一个和原数据框维度一致的逻辑矩阵,其中TRUE代表对应位置的行名和列名相同:

match_mat <- outer(rownames(dat), colnames(dat), `==`)

步骤2:替换目标位置的值

借助逻辑矩阵直接定位目标单元格,将其值替换为1:

dat[match_mat] <- 1

验证结果

执行上述代码后,原数据框会更新为:

ee bb cc dd
ee  1  4  4  2
bb  2  1  5  3
cc  3  6  1  4
dd  4  7  7  1

这个方法不受目标位置是否在对角线的限制,只要行名和列名相同的单元格都会被精准替换,适配任意结构的行名/列名匹配场景。

内容的提问来源于stack exchange,提问作者Z. Zhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:54:23