如何填写行名和列名相同的某些值

Z. *_*ang 3 r dataframe

假设我有一个数据框如下:

dat <- data.frame(
  ee=1:4,
  bb = 4:7,
  cc =4:7,
  dd = 2:5
)  
rownames(dat) <- colnames(dat)
dat
   ee bb cc dd
ee  1  4  4  2
bb  2  5  5  3
cc  3  6  6  4
dd  4  7  7  5
Run Code Online (Sandbox Code Playgroud)

如何将列名和行名相同的单元格值替换为 1?还假设该位置可能不在对角线上,需要替换的位置可以出现在任意位置。

李哲源*_*李哲源 5

这对于数据框来说令人惊讶地有效:

diag(dat) <- 1
Run Code Online (Sandbox Code Playgroud)

但你猜怎么着,diag(dat)不起作用。