创建一个新列,其中包含行数后面的字母
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_len
与 nrow
一起使用,但最多只能使用 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()])
我想根据数据框中的行数创建一个包含字母的新列。
数据:
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_len
与 nrow
一起使用,但最多只能使用 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()])