0

R にロードして因子に変換したい、metadata.csv というファイルがあります。私はから始めます:

metadata <- read.csv(file="metadata.csv", header=T, stringsAsFactors=T)

そして、これはCSVをうまくロードします。ここにメタデータを出力しました:

> metadata
                   Filename  Genre   Date Gender
1           Austen_Emma.txt Social  Early Female
2           Bronte_Eyre.txt Social Middle Female
3  Dickens_Expectations.txt Social   Late   Male
4            Eliot_Mill.txt Social   Late Female
5            Lewis_Monk.txt Gothic  Early   Male
6     Radcliffe_Italian.txt Gothic  Early Female
7  Shelley_Frankenstein.txt Gothic Middle Female
8        Stoker_Dracula.txt Gothic   Late   Male
9      Thackeray_Vanity.txt Social Middle   Male
10       Trollope_Vicar.txt Social Middle   Male

今、私はそれを要因に変換したい:

as.factor(metadata)

これにより、次のエラーが表示されます。

Error in sort.list(y) : 'x' must be atomic for 'sort.list'
Have you called 'sort' on a list?
4

2 に答える 2

5

metadata同じ長さのベクトルで構成される特殊なタイプのリストであるデータフレームです。as.factor()ベクトルでのみ使用できます。as.factor()したがって、データフレーム内の各ベクトルでクラスを作成する必要があります。これは、次のlapply関数を使用して実行できます。

metadata <- data.frame(lapply(metadata, factor))

これにより、各列が係数に変換されます (これは で確認してくださいclass(metadata[, 1]))。の全体的な構造はmetadataデータフレームのままです。

于 2013-11-07T17:08:38.703 に答える