我想在我的数据框中添加一个带有名字的新列。我是R的新手,我不知道该怎么做。非常感谢您的帮助。
我的数据框(一小部分):
name
Carl J. Johnson
David Marcus
A. Anna Jane Lue
我想创建一个像这样的新数据框:
name first_name
Carl J. Johnson Carl
David Marcus David
A. Anna Jane Lue A.
答案 0 :(得分:2)
使用sub
df$first_name <- sub("(\\w+\\.?).*", "\\1", df$name)
df
# name first_name
#1 Carl J. Johnson Carl
#2 David Marcus David
#3 A. Anna Jane Lue A.
或以相反的方式
sub("\\s+.*", "", df$name)
#[1] "Carl" "David" "A."
或者stringr::word
默认返回第一个单词。
stringr::word(df$name)
#[1] "Carl" "David" "A."
答案 1 :(得分:2)
假设您的数据框为df
,则可以使用gsub
df$first_name <- gsub(" .*$", "", df$name)
# [1] "Carl" "David" "A."
regex基本上是说,在第一个空格()之后,对于任何字符(
.*
),直到字符串的结尾($
),都将其替换为一无所有(""
)。