导出数据框作为因素

Export data frame as factors

R 的新手和第一个 post 在这里 - 这可能真的很明显,但我一定遗漏了一些东西。

时导入了一个具有二进制依赖项的 csv
purchase=read.csv("../Desktop/purchase.csv", stringsASfactors=TRUE)

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

我试过了

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

但是写函数不支持stringsASfactors。

欢迎帮助!

使用factor()函数,您可以直接将向量转换为分类变量。然后写入csv.

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

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

希望这对您有所帮助。

默认行为是将因子写入文件时将其视为字符串。在下面的例子中看到这个使用 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。