R仅在字符串中大写罗马数字

问题描述

如果我的向量具有以下内容

people <- c("PERSON I","PERSON II","PERSON III","PERSON IV")

为了将它们转换为标题,我使用以下内容

people <- str_to_title(people)

现在我有以下内容

> people
[1] "Person I"   "Person Ii"  "Person Iii" "Person Iv"  

我只有这样才能大写罗马数字吗?

"Person I"   "Person II"   "Person III"   "Person IV" 

或者有没有一种方法可以在不使用str_to_title的情况下将全部大写形式转换为最后一个向量?

解决方法

这是使用substrsubpaste的基本R选项:

people <- c("PERSON I","PERSON II","PERSON III","PERSON IV")
people <- paste0(substr(people,1,1),tolower(sub("^\\S(\\S+).*$","\\1",people))," ",sub("^.*?(\\S+)$",people))
people

[1] "Person I"   "Person II"  "Person III" "Person IV"
,

如果格式始终相同,即两个单词之间用空格隔开,则可以使用以下内容:

sapply(strsplit(people,' '),function(X){paste(str_to_title(X[1]),X[2]) })

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...