我有以下示例表,并希望更改e,f,g,h,i的列名。在这个例子中,让我们说我只想粘贴一个" 2"到最后(所以e2,f2等)有没有办法在没有for循环的情况下做到这一点?
m <- matrix(seq_len(12*5), nrow=5, ncol=12)
m <- data.frame(m)
names(m) <- letters[1:12]
m
a b c d e f g h i j k l
1 1 6 11 16 21 26 31 36 41 46 51 56
2 2 7 12 17 22 27 32 37 42 47 52 57
3 3 8 13 18 23 28 33 38 43 48 53 58
4 4 9 14 19 24 29 34 39 44 49 54 59
5 5 10 15 20 25 30 35 40 45 50 55 60
经过努力的搜索和反复试验,我还没有找到答案。如果已经提出这个问题,请不要对我投票,但请发表评论。我很乐意删除这篇文章。
答案 0 :(得分:1)
sprintf
和paste0
都可以使用。如果在评论中发表好答案的两个人希望发布答案,我会删除它,因为他们应该得到信用。
这是一个paste0
答案。
> names(m)[5:9] <- paste0(names(m[5:9]), 2)
> m
a b c d e2 f2 g2 h2 i2 j k l
1 1 6 11 16 21 26 31 36 41 46 51 56
2 2 7 12 17 22 27 32 37 42 47 52 57
3 3 8 13 18 23 28 33 38 43 48 53 58
4 4 9 14 19 24 29 34 39 44 49 54 59
5 5 10 15 20 25 30 35 40 45 50 55 60