如何在 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
广告