如何将列添加到data.frame

如何将列添加到data.frame,r,R,我是R的新手,现在我有一个25行3列的“a”。我想添加一列,这列将是:第1-5行将是“a”,第6-10行将是“B”…,然后它将上升到最后一行。是否可以实现自动添加?我自动将五行中的每一行命名为“A”、“B”、“C”、“D” a您可以使用rep: a$new_col <- LETTERS[rep(1:nrow(a), each = 5, length.out = nrow(a))] a # V1 V2 V3 new_col #1 1 2 3 A #2 4 5

我是R的新手,现在我有一个25行3列的“a”。我想添加一列,这列将是:第1-5行将是“a”,第6-10行将是“B”…,然后它将上升到最后一行。是否可以实现自动添加?我自动将五行中的每一行命名为“A”、“B”、“C”、“D”


a您可以使用
rep

a$new_col <- LETTERS[rep(1:nrow(a), each = 5, length.out = nrow(a))]
a

#   V1 V2 V3 new_col
#1   1  2  3       A
#2   4  5  6       A
#3   7  8  9       A
#4  10 11 12       A
#5  13 14 15       A
#6  16 17 18       B
#7  19 20 21       B
#8  22 23 24       B
#9  25 26 27       B
#10 28 29 30       B
#11 31 32 33       C
#12 34 35 36       C
#...
#...

a$new\u col替代解决方案
tidyverse
way

library(tidyverse)

a %>% mutate(id = row_number()-1, 
             new_col = LETTERS[(id%/%5)+1]) %>%
  select(-id)

   V1 V2 V3 new_col
1   1  2  3       A
2   4  5  6       A
3   7  8  9       A
4  10 11 12       A
5  13 14 15       A
6  16 17 18       B
7  19 20 21       B
8  22 23 24       B
9  25 26 27       B
10 28 29 30       B
11 31 32 33       C
12 34 35 36       C
13 37 38 39       C
14 40 41 42       C
15 43 44 45       C
16 46 47 48       D
17 49 50 51       D
18 52 53 54       D
19 55 56 57       D
20 58 59 60       D
21 61 62 63       E
22 64 65 66       E
23 67 68 69       E
24 70 71 72       E
25 73 74 75       E

注意:在26x5行用完后,它将添加
NA

library(tidyverse)

a %>% mutate(id = row_number()-1, 
             new_col = LETTERS[(id%/%5)+1]) %>%
  select(-id)

   V1 V2 V3 new_col
1   1  2  3       A
2   4  5  6       A
3   7  8  9       A
4  10 11 12       A
5  13 14 15       A
6  16 17 18       B
7  19 20 21       B
8  22 23 24       B
9  25 26 27       B
10 28 29 30       B
11 31 32 33       C
12 34 35 36       C
13 37 38 39       C
14 40 41 42       C
15 43 44 45       C
16 46 47 48       D
17 49 50 51       D
18 52 53 54       D
19 55 56 57       D
20 58 59 60       D
21 61 62 63       E
22 64 65 66       E
23 67 68 69       E
24 70 71 72       E
25 73 74 75       E