这是我的数据。
> data
Manufacturers Models
1 audi RS5
2 bmw M3
3 cadillac CTS-V
4 lexus ISF
而且我想把第一列的第一个字母大写,像这样。
> data
Manufacturers Models
1 Audi RS5
2 Bmw M3
3 Cadillac CTS-V
4 Lexus ISF
我将感谢任何帮助这个问题。谢谢你的帮助。
从文档中的例子 ?toupper
并稍加修改。
capFirst <- function(s) {
paste(toupper(substring(s, 1, 1)), substring(s, 2), sep = "")
}
data$Manufacturers <- capFirst(data$Manufacturers)
> data
# Manufacturers Models
# 1 Audi RS5
# 2 Bmw M3
# 3 Cadillac CTS-V
# 4 Lexus ISF
或者,举个例子 ?gsub
:
data$Manufacturers <- gsub("^(\\w)(\\w+)", "\\U\\1\\L\\2",
data$Manufacturers, perl = TRUE)
> data
> Manufacturers Models
1 Audi RS5
2 Bmw M3
3 Cadillac CTS-V
4 Lexus ISF
解决方法很简单。
你可以通过对一个字符串向量进行子集和大写来解决这个问题。
stringr::str_sub()
子集一个字符串向量。str_sub(string,
1, 1)
表示第一个字母。str_sub(df, 1, 1)
返回第一个字母的向量。stringr::str_to_upper()
把第一个字母变成大写字母。# Load package
library(tidyverse)
# Your data
df <- tibble(Manufacturers = c("audi", "bmw", "cadillac", "lexus"),
Models = c("RS5", "M3", "CTS-V", "ISF"))
# Solution
str_sub(df$Manufacturers, 1, 1) <- str_sub(df$Manufacturers, 1, 1) %>% str_to_upper()