R で、英字数字混じりの単語の頭文字だけを大文字にする方法

R で 例えば、"january1st" のはじめの "J" だけ大文字にする方法です。

Microsoft の Excel に、Proper という関数がありますが、Proper(january1st) すなわち、この関数を使うと確かに "J" は大文字になりますが、なんと "January1St" となってしまいます。

R 使いの諸氏は、それなら、R でと考えるところでしょうが、toupper, tolower で、それぞれ、全部大文字、全部小文字には変換できます。ところが、はじめの1文字という場合は、library の呼び出しが必要になります。

library(Hmisc)
capitalize("january1st")

と、したら良いようです。

ところが、列名でこの関数が動かないことがあります。この場合、列名が strings として認識されていないことがありますので、as.character() で、strings に変換してから、

capitalize(as.character( データテーブルの1列目 ))

などとしたら、動いてくれます。もしも、先の Microsoft Excel の proper などを通ってきて、既に "January1St" となっている場合は、"1"の後は、大文字に変換しないようです。 この場合は、一旦、tolower します。

library(Hmisc)
capitalize(tolower("January1St"))
capitalize(tolower(as.character( データテーブルの1列目 )))
B! LINE