重命名重复的列名和行名(子索引)

10

如果有一位好心人能告诉我如何在R中完成以下操作,我将不胜感激:

给定一个具有重复的列和行的方阵,例如

       1     1     2     2     2     2     3
1  0.000 0.000 0.048 0.048 0.048 0.048 0.059
1  0.000 0.000 0.048 0.048 0.048 0.048 0.059
2  0.048 0.048 0.000 0.000 0.000 0.000 0.059
2  0.048 0.048 0.000 0.000 0.000 0.000 0.059
2  0.048 0.048 0.000 0.000 0.000 0.000 0.059
2  0.048 0.048 0.000 0.000 0.000 0.000 0.059
3  0.059 0.059 0.059 0.059 0.059 0.059 0.000

如果同一列和行名称表示重复项,我需要有唯一的列和行名称,同时跟踪原始的和重复的列/行。也就是说,类似于

        1    1a     2    2a    2b    2c     3
1   0.000 0.000 0.048 0.048 0.048 0.048 0.059
1a  0.000 0.000 0.048 0.048 0.048 0.048 0.059
2   0.048 0.048 0.000 0.000 0.000 0.000 0.059
2a  0.048 0.048 0.000 0.000 0.000 0.000 0.059
2b  0.048 0.048 0.000 0.000 0.000 0.000 0.059
2c  0.048 0.048 0.000 0.000 0.000 0.000 0.059
3   0.059 0.059 0.059 0.059 0.059 0.059 0.000

谢谢提前

1个回答

23
你可以使用?make.unique或者?make.names:
v <- as.character(c(1, 1, 2, 2, 2, 2, 3))
make.unique(v)
# [1] "1"   "1.1" "2"   "2.1" "2.2" "2.3" "3"

你需要将这个与rownamescolnames结合使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接