如何更改一列列的列名?

时间:2014-05-14 15:33:47

标签: r for-loop vector matrix

我有以下示例表,并希望更改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

经过努力的搜索和反复试验,我还没有找到答案。如果已经提出这个问题,请不要对我投票,但请发表评论。我很乐意删除这篇文章。

1 个答案:

答案 0 :(得分:1)

sprintfpaste0都可以使用。如果在评论中发表好答案的两个人希望发布答案,我会删除它,因为他们应该得到信用。

这是一个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