我想设置rowname和colname与-1相同的每个单元格的值。
所以这个数据框:
var1 var2 var3 var4 var5 var6
var1 0 0 0 0 0 0
var2 0 0 0 0 0 0
var3 0 0 0 0 0 0
var4 0 0 0 0 0 0
var5 0 0 0 0 0 0会变成这样:
var1 var2 var3 var4 var5 var6
var1 -1 0 0 0 0 0
var2 0 -1 0 0 0 0
var3 0 0 -1 0 0 0
var4 0 0 0 -1 0 0
var5 0 0 0 0 -1 0执行此功能的最佳方式是什么?
发布于 2018-08-17 00:55:25
如果您想要的是找到rowname与colname匹配的单元格,那么只需使用一个简单的for循环遍历rownames,然后使用方括号表示法来查找适当的单元格:
for (x in rownames(df)) {
df[x, x] <- -1
}
df
var1 var2 var3 var4 var5 var6
var1 -1 0 0 0 0 0
var2 0 -1 0 0 0 0
var3 0 0 -1 0 0 0
var4 0 0 0 -1 0 0
var5 0 0 0 0 -1 0发布于 2018-08-17 02:33:24
类似于@divibisan的答案,但使用了矩阵字符索引:
m[cbind(rownames(m), rownames(m))] <- -1矩阵i = cbind(rownames(m), rownames(m))的每一行表示标识要分配给的位置的对{rowname,colname}。详情请参见?Extract。
https://stackoverflow.com/questions/51880962
复制相似问题