我有一个带有名称列的数据集,其中包含姓氏和名字。我需要将它们交换为名字和姓氏。这是我的数据集:
df=data.frame(Id=c("10","50"), Name=c("NAGAR MAYANK","PETER MARK"), Street= c("Newark Ave","Grant Ave"),Country=c("NJ","TX"))
Run Code Online (Sandbox Code Playgroud)
我已经尝试过下面的代码可以工作:
sub("(\\w+),\\s(\\w+)","\\2\\1", dummy$Name)
Run Code Online (Sandbox Code Playgroud)
然而,这给了我原来的名字,即“NAGAR MAYANK”和“PETER MARK”。
我需要如下输出:
| Id | Name | Street | State |
|----|---------------|------------|-------|
| 10 | MAYANK NAGAR | Newark Ave | NJ |
| 50 | MARK PETER | Grant Ave | TX |
Run Code Online (Sandbox Code Playgroud)
为此,您可以使用库word()中的stringr:
df$Name <- with(df, paste(word(Name, 2), word(Name, 1)))
Id Name Street Country
1 10 MAYANK NAGAR Newark Ave NJ
2 50 MARK PETER Grant Ave TX
Run Code Online (Sandbox Code Playgroud)