R语言如何将普通字符向量转换为首字母大写的命名向量?
R语言命名向量生成方案
当然可以实现,下面是两种常用的可直接运行的方案:
方案1:依赖内置工具包实现(代码更简洁)
R的tools内置包提供了直接将单词首字母大写的toTitleCase()函数,配合setNames()函数可以快速完成目标:
# 加载内置tools包 library(tools) # 你的原始向量 animals <- c('dog','cat','mouse') # 生成目标命名向量,setNames第一个参数为向量值,第二个参数为向量命名 target_vec <- setNames(toTitleCase(animals), animals)
运行后打印target_vec即可得到你需要的结构:
dog cat mouse "Dog" "Cat" "Mouse"
方案2:无额外依赖实现(不用加载任何包)
如果不想依赖任何包,也可以自己实现首字母大写的逻辑,代码如下:
animals <- c('dog','cat','mouse') # 手动实现首字母大写+拼接剩余字符 upper_vals <- paste0( toupper(substr(animals, 1, 1)), substr(animals, 2, nchar(animals)) ) target_vec <- setNames(upper_vals, animals)
两种方案得到的结果完全一致,你可以根据自己的场景选择。
内容的提问来源于stack exchange,提问作者Eisen
相关产品推荐
相关产品推荐

