colClassesで特定の列の読み込み型だけを指定、他の列はRの判断にまかせる(read.csv、read.table)
例えば↓こんなCSVデータがあったとして、 ファイル名: "data.csv" id , name , age 001 , taro , 41 002 , hanako , 40 003 , ichiro , 11 004 , jiro , 2 ↓ごく普通に読み込むと・・・ > data <- read.csv ( "data.csv" ) > data id name age 1 1 ichiro 41 2 2 hanako 40 3 3 taro 11 4 4 jiro 2 idの先頭につけていた00がなくなってしまうんですよね。 str関数で型を見てみると、 > str ( data ) 'data.frame' : 4 obs. of 3 variables: $ id : int 1 2 3 4 $ name: Factor w/ 4 levels "hanako" , "ichiro" , ..: 2 1 4 3 $ age : int 41 40 11 2 idはint型として読み込まれています。idのような用途だと先頭のゼロは残しておきたいってときがありますよね。 そんなときは、colClassesで読み込み時の型を指定してやればいいです。 > data <- read.csv ( "data.csv" , colClasses= "character" ) > data id name age 1 001 ichiro 41 2 002 hanako 40 3 003 taro 11 4 004 jiro 2 文字列として読み込まれ先頭のゼロも残りました。ただ、上記のように一律「文字列」と指定してしまうと、ageまで文字列になってしまい、↓数値的な処理ができなくなってしまいます。 > mean ( data$age ...