我想将数据框导出到xls文件。我找到了易于使用的库XLConnect,但我不介意尝试别的东西。
我遇到的问题是输出(xls文件)。由于我的数据框包含'A_B'之类的字符串,因此输出包含每个整数之前的字符。这对我来说是个问题,因为我需要OpenOffice来检测带有整数的列,以便以后能够应用公式。
这是一个没有任何问题的小例子,这意味着xls文件中的每个条目都是一个整数。
system("cl /EHsc test.cpp");
以下示例中出现此问题。
library(XLConnect)
test = as.data.frame(matrix(c(0,0),nrow=1),stringsAsFactors = FALSE)
wb =loadWorkbook('file.xls',create=TRUE)
createSheet(wb, name = "test")
writeWorksheet(wb,test,'test',header=FALSE)
saveWorkbook(wb)
在最后一个示例中,xls文件中的第一个条目为“0”,在OpenOffice中未检测为整数。
有没有办法从输出数据中删除字符?
谢谢
答案 0 :(得分:1)
在XLConnect中,data.frame
的列类型决定了生成的单元格类型。例如。 character
列会生成字符串/文本单元格,而numeric
列会生成数字单元格。
在您的示例中,表达式c(0, 'A_B')
会生成character
向量(R会自动强制您的0
到character
),因此写入的结果单元格将为字符串/ text cell(请参阅str(test)
调查您的data.frame
)。因此,您只需以不同方式构建data.frame
即可。通过执行以下操作:
test = data.frame(NumericColumn = 0, TextColumn = "A_B", stringsAsFactors = FALSE)
str(test)
查看str(test)
的输出,您现在应该看到“NumericColumn”是numeric
列,“TextColumn”是character
列。使用XLConnect编写data.frame
时,您将看到生成的单元格将具有适当的单元格类型。