使用StringsAsFactors时出错

时间:2016-07-17 08:06:39

标签: r string dataframe dataset

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

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

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

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

当我尝试访问链接中的值时,它采用以下因素:

  

&#39; data.frame&#39;:12 obs。 1变量:$ X.df1 ... 1 ..:因子w / 12   水平   &#34; http://blog.cloudera.com/blog/2014/09/apache-kafka-for-beginners/&#34;,..:   9 10 8 12 7 5 6 4 1 2 ...

即使我使用StringsAsFactors=FALSE,我也很困惑为什么这些值以因子而非字符的形式存储。让我知道如何以因子的形式存储这些值。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

data.frame()的默认设置为stringsAsFactors=TRUE。因此,即使您使用df1使用read.csv()阅读stringsAsFactors=FALSE,也可以使用data.frame()重新插入因子。在这种情况下,没有必要致电data.frame()。你可以使用

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