R 如何更改一组列的列名?

R 如何更改一组列的列名?,r,for-loop,vector,matrix,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

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

msprintf
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
>名称(m)[5:9]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

names(m)[5:9]或者如果您想避免使用格式说明符,
names(m)[5:9]以下是答案。为什么在评论部分P