gpt4 book ai didi

r - 将 "Name"分成数据帧的 "FirstName"和 "LastName"列

转载 作者:行者123 更新时间:2023-12-02 00:52:38 26 4
gpt4 key购买 nike

我正在努力弄清楚如何将数据框中的单列“Name”拆分为同一数据框中的另外两列“FistName”和“LastName”。挑战是我的一些名字有几个姓氏。本质上,我想取出第一个单词(或字符串的元素)并将其放入 FirstName 列中,然后将所有后续文本(当然减去空格)放入 LastName 列中。

这是我的 DataFrame“团队”

NAME <- c('John Doe','Peter Gynn','Jolie Hope-Douglas', 'Muhammad Arnab Halwai')
TITLE <- c("assistant", "manager", "assistant", "specialist")
tteam<- data.frame(NAME, TITLE)

我想要的输出是这样的:

FirstName <- c("John", "Peter", "Jolie", "Muhammad")
LastName <- c("Doe", "Gynn", "Hope-Douglas", "Arnab Halwai")
tteamdesire <- data.frame(FirstName, LastName, TITLE)

我尝试使用以下代码来创建一个仅包含名称的新数据框,该数据框允许我从第一列中提取名字。但是,我无法将姓氏按任何顺序排列。

names <- tteam$NAME ##  puts full names into names vector
namesdf <- data.frame(do.call('rbind', strsplit(as.character(names),' ',fixed=TRUE)))
## splits out all names into a dataframe PROBLEM IS HERE!

最佳答案

您可以使用 tidyr 中的extract

 library(tidyr)
extract(tteam, NAME, c("FirstName", "LastName"), "([^ ]+) (.*)")
# FirstName LastName TITLE
#1 John Doe assistant
#2 Peter Gynn manager
#3 Jolie Hope-Douglas assistant
#4 Muhammad Arnab Halwai specialist

关于r - 将 "Name"分成数据帧的 "FirstName"和 "LastName"列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26489276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com