私はこの問題の解決策をオンラインで見つけることができませんでした。ここ はそれがあります:一般的に言えば扱う数字を文字として扱います
#Construct test dataframe
tf <- data.frame(1:3,4:6,c("A","A","A"))
#Try the apply function I'm trying to use
test <- apply(tf,2,function(x) if(is.numeric(x)) mean(x) else unique(x)[1])
#Look at the output--all columns treated as character columns...
test
#Look at the format of the original data--the first two columns are integers.
str(tf)
、私は、行/列が含まれているデータの種類に基づいて、行/列の上にどのような機能I apply
を区別します。
ここでは、列が数値の場合は単純なmean
、列が文字列の場合は最初のunique
の値が必要です。ご覧のとおり、apply
はすべての列を文字として扱います。
これはまさに答えでした - ありがとう!貢献した他の人たちへの感謝: – Aaron
列 'c'のクラスはデフォルトで' factor'になっているので、 'stringsToFactors = FALSE'を追加するのを忘れました。 'options(stringsAsFactors = FALSE)'を設定したい場合は、 'factor'を取得します。助言されます。 – aL3xa