如何转换R中字符串的顺序?

如何转换R中字符串的顺序?,r,R,更新:我使用了@rawr的建议。谢谢 我正在上一门R的初级课程——加上一本非常不清楚的教科书(学习R),以及作业问题往往模糊不清的事实,我很难把事情弄清楚 我现在的问题是:如果一个人的全名是firstName,middleName,lastName的格式,那么写R代码将其转换为lastName,middleInitial,firstName的格式。在迈克尔·卡洛斯·杜马的例子中,改名为杜马,C·迈克尔。(提示:使用stringr库中的str_split解析全名) 到目前为止,我得到的是: nam

更新:我使用了@rawr的建议。谢谢

我正在上一门R的初级课程——加上一本非常不清楚的教科书(学习R),以及作业问题往往模糊不清的事实,我很难把事情弄清楚

我现在的问题是:如果一个人的全名是firstName,middleName,lastName的格式,那么写R代码将其转换为lastName,middleInitial,firstName的格式。在迈克尔·卡洛斯·杜马的例子中,改名为杜马,C·迈克尔。(提示:使用stringr库中的str_split解析全名)

到目前为止,我得到的是:

name <- ("Michael Carlos Dumas")
nameSplit <- strsplit(name," ")
但是现在名称被拆分了,我不知道如何继续或使用什么函数来重新排列名称的格式,以及添加正确的标点符号


任何帮助都将不胜感激。提前谢谢

您也可以通过以下代码执行此操作:

> sapply(nameSplit,function(x){ return (paste0(x[3],', ',substr(x[2],1,1),'. ',x[1]))})
[1] "Dumas, C. Michael"

请参见
?粘贴
,了解起点。还可以查看
nameSplit[[1]]
排序(nameSplit[[1]])
,以及
nameSplit[[1]]][1]
。不确定
排序()在这里有何用处。
> sapply(nameSplit,function(x){ return (paste0(x[3],', ',substr(x[2],1,1),'. ',x[1]))})
[1] "Dumas, C. Michael"