Rで大量のデータセットをインポートしていて、素早く列を通過し、列にカテゴリ値、数値、日付などがあるかどうかを確認する方法があるstr(df)
またはclass(df)
の場合、列のほとんどが誤って表示されます。データセットをインポートするときにカテゴリ変数を特定するR
たとえば、一部の列は数値としてラベル付けされていますが、実際には要素であることを示す列には10の一意の値(1〜10の範囲)しかありません。定格を表す11の一意の値しか持たない他の列があります.0から5までの0.5単位の増分です。別の列には、国コード(172の値)があります。範囲は1〜230です。
変数の性質を理解するために各列を通らずに列を要素にすべきかどうかを素早く特定する方法はありますか? (データセットには多くの列があります)
ありがとう!現時点で
、私は最初の二つのケースをキャッチするために、次のコードのバリエーションを使用してきた:
as.numeric(df[,51]) #convert the column to numeric
len = length(unique(df[,51])) #find number of unique values
diff = max(df[,51]) - min(df[,51]) #calculate difference between min and max
ord = (len - 1)/diff # calculate the increment if equally spaced
#subtract the max value from second to max value to find the actual increment (only uses last two values)
step = sort(unique(df[,51]),partial=len)[len] -
sort(unique(df[,51]),partial=len-1)[len-1]
ord == step #check if the last increment equals the implied increment
しかし、このアプローチはのために(変数の各々が等間隔されていることを前提と例、0.5をインクリメント)、最後の2つの値の間のスペースのみをテストします。これは、6つの一意の値を持つc(1,2,3.5,4.5,5,6)が含まれている列をキャッチしませんでしたが、中央に不均等な間隔(これは私のデータセットでは共通ではありません)。
参考に要因を特定することができKであり、私は疑問に掲載コードの変化に取り組んできた理由である数値/ファクター間のデータセットには、実際のカットオフは、ありません要因を別の方法で特定しようとする –