R-如何在数据帧标题中获取特定的字符串值



我有数据框df,如何在第一个字符或数字之后从字符串返回值。

我的数据框。

ID   Name  Name.FirstName   Name.Last.Name  Age
1     rosy     ton            P            23
2     Jhon     peter          N            22

我的预期数据框。

ID   Name   FirstName      Last.Name     Age
1     rosy     ton            P           23
2     Jhon     peter          N           22

我只需要从数据帧标头中删除第一个 (.) 值之前

德普特

structure(list(ID = c(1, 2), Name = structure(c(2L, 1L), .Label = c("Jhon", 
"rosy"), class = "factor"), Name.FirstName = structure(c(2L, 
1L), .Label = c("peter", "ton"), class = "factor"), Name.Last.Name = structure(c(2L, 
1L), .Label = c("N", "P"), class = "factor"), Age = c(23, 22)), .Names = c("ID", 
"Name", "Name.FirstName", "Name.Last.Name", "Age"), row.names = c(NA, 
-2L), class = "data.frame")

我们可以使用 sub 来匹配零个或多个不是.[^.]* ) 的字符,从列名的开头 ( ^ ) 后跟一个.,并将其替换为空白 ( "" )。 由于.是一个元字符,即它与任何字符匹配,我们转义以获得字符的字面含义

names(df) <- sub("^[^.]*\.", "", names(df))
names(df)
#[1] "ID"        "Name"      "FirstName" "Last.Name" "Age"   

最新更新