如何在 R 数据框中删除列名的第一个字符?


要删除 R 数据框中列名的第一个字符,我们可以使用 stringr 包的 str_sub 函数。

例如,如果我们有一个名为 df 的数据框,其中包含两列,例如 XID 和 XDV,那么我们可以使用下面提到的命令从这两个列名中删除 X:

names(df)=str_sub(names(df),2)

示例 1

以下代码片段创建了一个示例数据框:

XColor<-sample(c("Green","Red","Blue"),20,replace=TRUE)
YScore<-sample(1:100,20)
df1<-data.frame(XColor,YScore)
df1

创建了以下数据框

  XColor YScore
1  Green   46
2  Red     80
3  Red     22
4  Green   21
5  Blue    54
6  Red     81
7  Blue    41
8  Red      4
9  Blue    63
10 Green   67
11 Green   71
12 Red     65
13 Red     79
14 Blue    58
15 Blue    76
16 Green   10
17 Red     60 
18 Red     16
19 Green   27
20 Red     74

要加载 stringr 包并在上面创建的数据框 df1 中删除列名的第一个字符,请将以下代码添加到上述代码片段中:

XColor<-sample(c("Green","Red","Blue"),20,replace=TRUE)
YScore<-sample(1:100,20)
df1<-data.frame(XColor,YScore)
library(stringr)
names(df1)=str_sub(names(df1),2)
df1

输出

如果您将上面给出的所有代码片段作为单个程序执行,它将生成以下输出:

   Color Score
1  Green   46
2  Red     80
3  Red     22
4  Green   21
5  Blue    54
6  Red     81
7  Blue    41
8  Red      4
9  Blue    63
10 Green   67
11 Green   71
12 Red     65
13 Red     79
14 Blue    58
15 Blue    76
16 Green   10
17 Red     60
18 Red     16
19 Green   27
20 Red     74

示例 2

以下代码片段创建了一个示例数据框:

SStudents_ID<-c(200001:200020)
LLevel<-sample(c("First","Second","Third"),20,replace=TRUE)
df2<-data.frame(SStudents,LLevel)
df2

创建了以下数据框

SStudents LLevel
1  200001 First
2  200002 Third
3  200003 Third
4  200004 Second
5  200005 Second
6  200006 Second
7  200007 Second
8  200008 First
9  200009 Second
10 200010 Second
11 200011 First
12 200012 Third
13 200013 Second
14 200014 Second
15 200015 Second
16 200016 First
17 200017 First
18 200018 Third
19 200019 Third
20 200020 Second

要删除上面创建的数据框 df2 中列名的第一个字符,请将以下代码添加到上述代码片段中:

SStudents_ID<-c(200001:200020)
LLevel<-sample(c("First","Second","Third"),20,replace=TRUE)
df2<-data.frame(SStudents,LLevel)
names(df2)=str_sub(names(df2),2)
df2

输出

如果您将上面给出的所有代码片段作为单个程序执行,它将生成以下输出:

  Students Level
1  200001 First
2  200002 Third
3  200003 Third
4  200004 Second
5  200005 Second
6  200006 Second
7  200007 Second
8  200008 First
9  200009 Second
10 200010 Second
11 200011 First
12 200012 Third
13 200013 Second
14 200014 Second
15 200015 Second
16 200016 First
17 200017 First
18 200018 Third
19 200019 Third
20 200020 Second

更新于: 2021-11-03

3K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告