CSV列をカテゴリデータとして直接読み取ることはできますか?


10

Rを使用して、CSVで提供される医療調査(100以上のコード化された列を含む)のデータを分析する必要があります。最初の分析にはガラガラを使用しますが、舞台裏ではまだRです。

ファイルをread.csv()すると、数値コードの列が数値データとして扱われます。factor()を使用してそれらからカテゴリカル列を作成できることは知っていますが、100以上の列に対してそれを行うのは面倒です。

列を因子として直接インポートするようにRに指示するより良い方法があることを願っています。または、少なくとも後でそれらを適切な場所に変換すること。

ありがとうございました!


3
ここでRの質問を受け付けています。meta.stats.stackexchange.com/questions/252/…を
Rob Hyndman、

回答:


15

colClasses引数を使用して、データ列のクラスを指定できます。例えば:

data <- read.csv('foo.csv', colClasses=c('numeric', 'factor', 'factor'))

最初の列に数値を、2番目と3番目に因数を割り当てます。非常に多くの列があるため、ショートカットは次のようになります。

data <- read.csv('foo.csv', colClasses=c('numeric', rep('factor', 37), 'character'))

またはそのようなバリエーション(最初の列に数値を割り当て、次の37列に因数分解し、最後の列に文字を割り当てる)。


:あなたは(1つの変数のみにクラスを割り当てるために、例えば)変数名でクラスを指定したい場合にも、有用である可能性がstackoverflow.com/a/8185739/1169233
Waldir Leoncioを

3

または、データを読み取った後にそれを実行します

dat <- read.csv("kdfjdkf")
apply(dat, 2, factor)

ただし、このタイプのQはおそらくスタックオーバーフローにより適しています。

編集:以下を参照してください。


1
meta.stats.stackexchange.com/questions/252/…を参照してください。現在のコンセンサスはこれが適切な質問であるということです。メタでチャイムに同意しない場合は、新しい質問者をいじめないでください。
russellpierce 2010

1
わかりましたが、おそらく少なくとも今のところは、純粋なRの質問に対する回答を得るために、より多くの聴衆がいるでしょう-したがって、「おそらく」です。「苦痛」は強い言葉です :)
apeescape 2010

1
確かに、苦痛は少し強いです。私はそのことについて申し訳ありません。私はメタにコメントしないで(コンセンサスがかなり明確であるように)質問の質問者をStackOverflowにリダイレクトすることに固執する繰り返しの犯罪者ユーザー(あなたは1人ではありません)に苛立っていました。
russellpierce

これは0で埋め数字、数字の混合物および欠損値を持つ列を持っているかの値のみを持っている問題につながることができます'T'し、'F'(論理的に変換されます)。
Max Candocia、2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.