使用 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
读取 df1
和 read.csv()
,也会使用 data.frame()
重新插入因子。在这种情况下没有必要调用 data.frame()
。你可以只使用
link <- df1[,1,drop=FALSE]
我正在从 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
读取 df1
和 read.csv()
,也会使用 data.frame()
重新插入因子。在这种情况下没有必要调用 data.frame()
。你可以只使用
link <- df1[,1,drop=FALSE]