データフレームの列または行の名前を変更するために、データフレームに名前のベクトルを与える方法がわかります。データフレーム内の各列のクラスを変更する名前のベクトルを提供する同様のメソッドがありますか?これは、colClassesを使用してread.tableを使用してデータフレームを読み込むときに実行できます。データフレームがRの中で作られたらどうでしょうか?は、データフレームの「クラス」にベクトルを供給します。
DF <- as.data.frame(matrix(rnorm(25), 5, 5))
str(DF) #all numeric modes
names(DF) <- c("A", "A2", "B", "B2", "Z") #I want something like this for classes
some_classes_function_like_names(DF) <- c(rep("character", 3), rep("factor", 2))
#I can do it like this but this seems inefficient
DF[, 1:3] <- lapply(DF[, 1:3], as.character)
DF[, 4:5] <- lapply(DF[, 4:5], as.factor)
str(DF)
EDIT:sapplyが理にかなっていないので、上記のsapplyをlapplyに変更しました。
EDIT 2:同様
@ Tommy私は「あなたはすでにそれを簡単に行う基本機能があります」という答えを期待していました。あなたの機能はうまくいきます。私は自分自身のための便利な関数として.First()にそれを投げるつもりです。私は実際には、Rコアチームがまだread.tableの一部であるように見えるので、このようなことをまだ実装していないことに少し驚いています。ありがとうございました。 –
@タイラー私はあなたの驚きを共有しました。私はずっとこれを行うための基底関数を探し求めていましたし、通常はその場でいくつかの特別なアプローチを取っています。 Rコアのチームがこれを基本とみなすなら、それは素晴らしいことでしょう。 – digitalmaps