创建一个新列,其中包含行数后面的字母

Create a new column with letters following the number of rows

我想根据数据框中的行数创建一个包含字母的新列。

数据:

set.seed(42)
df = data.frame(matrix(rnorm(20), nrow=10))
df
            X1         X2
1   1.37095845  1.3048697
2  -0.56469817  2.2866454
3   0.36312841 -1.3888607
4   0.63286260 -0.2787888
5   0.40426832 -0.1333213
6  -0.10612452  0.6359504
7   1.51152200 -0.2842529
8  -0.09465904 -2.6564554
9   2.01842371 -2.4404669
10 -0.06271410  1.3201133

我可以通过手动设置行数来插入字母。我想根据数据框中的行数进行相应设置。

df$label = as.character(LETTERS[1:10])
df
            X1         X2 label
1   1.37095845  1.3048697     A
2  -0.56469817  2.2866454     B
3   0.36312841 -1.3888607     C
4   0.63286260 -0.2787888     D
5   0.40426832 -0.1333213     E
6  -0.10612452  0.6359504     F
7   1.51152200 -0.2842529     G
8  -0.09465904 -2.6564554     H
9   2.01842371 -2.4404669     I
10 -0.06271410  1.3201133     J

您可以将 seq_lennrow 一起使用,但最多只能使用 26 行。

df$label <-  LETTERS[seq_len(nrow(df))]

如果你有更多的行并且想重复LETTEERS:

df$label <- LETTERS[1 + seq(0, length.out = nrow(df)) %% 26]

dplyr:

library(dplyr)

df %>%
  mutate(label = LETTERS[row_number()])