2013-04-27 3 views
4

Heres мои данные,Прописная первая буква в кадре данных

> 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 

Я был бы признателен за любую помощь по этому вопросу. Большое спасибо.

ответ

7

Принимая пример из документации для ?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 
+0

Есть ли способ сделать это так, первое письмо каждого слова (если каждая запись может быть более одного слова) капитализируется? Другие решения по использованию стека применяются и слишком медленны, мне нравится это векторизованное решение – robertevansanders

3

Или, беря пример из ?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