我有数据框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"