R的新手和第一篇文章 - 这可能非常明显但我必须遗漏一些东西。
在
时导入具有二进制相关的csvpurchase=read.csv("../Desktop/purchase.csv", stringsASfactors=TRUE)
现在我希望从R(在.csv中)导出相同的数据框,而是将分类变量(最初是字符串)保留为因子,有效地转换数据集。
我试过
write.csv(purchase,'../Desktop/purchaseconverted.csv', stringsASfactors=TRUE)
但写函数不支持stringsASfactors。
我欢迎帮助!
答案 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。