在 R 中交换名字和姓氏,反之亦然

hk2*_*hk2 1 r gsub

我有一个带有名称列的数据集,其中包含姓氏和名字。我需要将它们交换为名字和姓氏。这是我的数据集:

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)

tmf*_*mnk 5

为此,您可以使用库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)