特定の文字列コードを含む特定の列を同じdata.frameの要素に変換したいとします。しかし、私はdata.frameカラム参照を自分の関数に渡すという初期の仕事に苦しんでいます。例hereとそのリンクされたページからの作業、私は次のように動作するはずと信じて:R関数を使用して、文字列を同じデータフレーム内の因子として置き換えます。
#feed string to function
set.seed(42)
df <- data.frame(
chr1 = sample(letters[1:4], 10, T),
chr2 = sample(letters[4:7], 10, T),
stringsAsFactors = F
)
tofactor <- function(dat,column) {
dat[,column] <- as.factor(dat[,column])
}
tofactor(df, "chr1")
typeof(df$chr1)
しかし、この操作の結果は、df$chr1
のための文字列エンコーディングの持続性です。私はまた、二重角括弧のアプローチを使用して成功を収めずに参照を試みました。
ご協力いただきありがとうございます。
「dat」を関数の最後の行に追加してください。 – rawr
前の投稿が間違っています。あなたの機能は正常です。あなたの問題は、 'tofactor'関数の結果を何にも割り当てないということです。 'df $ chr1 < - tofactor(df、" chr1 ")'を使ってください。また、 'data.frame()'の呼び出しの中で '='を使用し、 '< - 'を使用しないでください。 – cmaher
前のポスターのアドバイスは愚かです。私の方法は良いです – rawr