因子列 (df など) で構成されるデータ フレームを、read.table が作成するもの (df2 など) と同様に、可能な限り最適な型に自動的に変換する方法に興味があります。1 つの可能性は、データ フレームを文字列に書き込み、read.table で読み戻すことです。他のものはありますか?
> df <- data.frame(a=c(" 1"," 2", " 3"),b=c("a","b","c"),c=c(" 1.0", "NA", " 2.0"),d=c(" 1", "B", "2"))
> str(df)
'data.frame': 3 obs. of 4 variables:
$ a: Factor w/ 3 levels " 1"," 2"," 3": 1 2 3
$ b: Factor w/ 3 levels "a","b","c": 1 2 3
$ c: Factor w/ 3 levels " 1.0"," 2.0",..: 1 3 2
$ d: Factor w/ 3 levels " 1","2","B": 1 3 2
> df2 <- with(df, data.frame(a=as.integer(a),b=b,c=as.numeric(c),d=as.character(d), stringsAsFactors=FALSE))
> str(df2)
'data.frame': 3 obs. of 4 variables:
$ a: int 1 2 3
$ b: Factor w/ 3 levels "a","b","c": 1 2 3
$ c: num 1 3 2
$ d: chr " 1" "B" "2"