我正在从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
,我也很困惑为什么这些值以因子而非字符的形式存储。让我知道如何以因子的形式存储这些值。
答案 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]