导出数据框作为因素

时间:2015-04-03 20:03:26

标签: r string csv export-to-csv

R的新手和第一篇文章 - 这可能非常明显但我必须遗漏一些东西。

时导入具有二进制相关的csv
purchase=read.csv("../Desktop/purchase.csv", stringsASfactors=TRUE)

现在我希望从R(在.csv中)导出相同的数据框,而是将分类变量(最初是字符串)保留为因子,有效地转换数据集。

我试过

write.csv(purchase,'../Desktop/purchaseconverted.csv', stringsASfactors=TRUE) 

但写函数不支持stringsASfactors。

我欢迎帮助!

2 个答案:

答案 0 :(得分:0)

使用factor()函数,可以直接将矢量转换为分类变量。然后写信给csv。

purchase <- data.frame(a,b,c)
purchase['a'] <- factor(a)

write.csv(purchase,'../Desktop/purchaseconverted.csv')

希望这会有所帮助。

答案 1 :(得分:0)

默认行为是将因子写入文件时将其视为字符串。请使用iris数据集在以下示例中查看此内容,该数据集包含因子列Species

write.csv(head(iris))
# "","Sepal.Length","Sepal.Width","Petal.Length","Petal.Width","Species"
# "1",5.1,3.5,1.4,0.2,"setosa"
# "2",4.9,3,1.4,0.2,"setosa"
# "3",4.7,3.2,1.3,0.2,"setosa"
# "4",4.6,3.1,1.5,0.2,"setosa"
# "5",5,3.6,1.4,0.2,"setosa"
# "6",5.4,3.9,1.7,0.4,"setosa"

您可以通过将因子转换为数字来更改此值,因此该文件包含数值而不是因子变量的因子标签:

iris2 <- iris
iris2$Species <- as.numeric(iris2$Species)
> write.csv(head(iris2))
# "","Sepal.Length","Sepal.Width","Petal.Length","Petal.Width","Species"
# "1",5.1,3.5,1.4,0.2,1
# "2",4.9,3,1.4,0.2,1
# "3",4.7,3.2,1.3,0.2,1
# "4",4.6,3.1,1.5,0.2,1
# "5",5,3.6,1.4,0.2,1
# "6",5.4,3.9,1.7,0.4,1

这样您就可以将因子值而不是因子标签写入CSV。

相关问题