使用 StringsAsFactors 时出错

Error while using StringsAsFactors

我正在从 CSV 文件中读取数据集,如下所示:

df1=read.csv("train.csv",header=TRUE,stringsAsFactors=FALSE)

我正在将数据框中第一列的那些值复制到另一个数据框中,如下所示:

link<-data.frame((df1[,1]))

当我尝试访问 link 中的值时,它的形式是因子:

'data.frame': 12 obs. of 1 variable: $ X.df1...1..: Factor w/ 12 levels "http://blog.cloudera.com/blog/2014/09/apache-kafka-for-beginners/",..: 9 10 8 12 7 5 6 4 1 2 ...

尽管我使用了 StringsAsFactors=FALSE,但我很困惑为什么这些值以因子而不是字符的形式存储。请让我知道如何以因子的形式存储这些值。

您可以验证 df1[, 1] 是一个字符向量。但是 data.frame(df1[, 1]) 里面还需要另一个 stringsAsFactors = FALSE。阅读 ?data.frame;默认情况下,它也将字符串重新编码为因子。

但是,为什么不简单地做 link <- df1[1]

data.frame()的默认设置是stringsAsFactors=TRUE。因此,即使您使用 stringsAsFactors=FALSE 读取 df1read.csv(),也会使用 data.frame() 重新插入因子。在这种情况下没有必要调用 data.frame()。你可以只使用

link <- df1[,1,drop=FALSE]