首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在用XLConnect编写时,我如何删除字符?

在用XLConnect编写时,我如何删除字符?
EN

Stack Overflow用户
提问于 2016-02-22 18:05:18
回答 1查看 240关注 0票数 0

我想将数据帧导出到xls文件。我找到了库XLConnect,它很容易使用,但是我不介意尝试其他的东西。

我遇到的问题是输出(xls文件)。由于我的数据帧包含像'A_B‘这样的字符串,输出包含每个整数之前的字符’。这对我来说是个问题,因为我需要OpenOffice来检测带有整数的列,以便以后能够应用公式。

下面是一个没有任何问题的小示例,这意味着xls文件中的每个条目都是一个整数。

代码语言:javascript
复制
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)

此问题发生在下面的示例中。

代码语言:javascript
复制
library(XLConnect)
test = as.data.frame(matrix(c(0,'A_B'),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中没有检测到它是整数。

有办法从输出数据中删除字符吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-23 15:51:55

在XLConnect中,data.frame的列类型确定结果单元格类型。例如,character列导致字符串/文本单元格,而numeric列则生成数字单元格。

在您的示例中,表达式c(0, 'A_B')将生成一个character向量(R会自动将您的0强制强制到character),因此所编写的单元格将是字符串/文本单元(请参阅str(test)以研究data.frame)。因此,只需以不同的方式构造data.frame就可以了,例如,执行以下操作:

test = data.frame(NumericColumn = 0, TextColumn = "A_B", stringsAsFactors = FALSE) str(test)

查看str(test)的输出,您现在应该看到"NumericColumn“是numeric列,"TextColumn”是character列。在用data.frame编写XLConnect时,您将看到生成的单元格将具有适当的单元格类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35560735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档