R数据框到Excel但公式显示为#DIV / 0

时间:2015-08-24 16:40:46

标签: r excel formulas

我有一个来自excel输入的数据框和另一个excel电子表格,其中第一页空白,我希望将数据导入到第二页,其中有公式来计算行的平均值。

R代码:

require(xlsx)
require(XLConnect)
setwd("C:/Users/...")
## made up data that should becoming from an excel sheet
data <- matrix(c(3, 4, 3, 5, 7, 6, 7, 8, 9, 10, 11, 12), nrow=3, ncol=4)
wb1 <- loadWorkbook("test.xlsx", create=F)
as.numeric(data)
setForceFormulaRecalculation(wb1, sheet = "Sheet2", T)
writeWorksheet( wb1,  data, sheet ="Sheet1" , startRow = 1, startCol = 1, header = F)
saveWorkbook(wb1, "Newtest.xlsx")

Excel电子表格(test.xlsx - Sheet2):

=AVERAGE(Sheet1!A1:D1)
=AVERAGE(Sheet1!A2:D2)
=AVERAGE(Sheet1!A3:D3)

Link to Image

对于上面的图像链接:

左边是实际数据,其中来自R的导入数据左上角有箭头(表示它是文本字符串)但是一旦我双击并点击输入正确输入数据这会把它变成实际的数字。我尝试过使用as.numeric,as。字符,但没有任何内容将数据输出更改为数字。

右边是第二张excel电子表格的图片,其中包含第一个代码示例的公式,它们实际上并未改变公式。 (我实际上无法上传图片,因为我没有足够的代表...)

这不是我的数据的确切问题,如果我转到数据上的每个单元格并双击进入单元格然后点击回车,公式就有效。我认为数据作为字符和数字输入的方式,但我不知道哪个是搞乱它。带有数据的实际代码如下:

require(xlsx)
require(XLConnect)
setwd("C:/Users/...")
wb <- loadWorkbook("ExcelTemplate.xlsx", create=F)
nws <- read.xlsx(file.choose(), sheetName="Results", header=FALSE, as.data.frame=TRUE, keepFormulas=TRUE)
## Adding rows to formate data to tempalte or wooksheet 2 of the workbook
r <- 39
newrow <- ""
nws = rbind(nws[1:39,],newrow,nws[-(1:39),], row.names=F)
rownames(nws) <- NULL
## Reduces data to only 9 columns 
wk2c <- nws[, c(1:9)]
names(wk2c) <- c("Well", "Well Position","Omit", "Sample Name", "Target Name", "Task", "Reporter", "Quencher", "CT")
## Changes all blanks to NA and all NA's to 0's
wk2c[, 9] <- as.numeric(as.character(wk2c[, 9]))
is.na(wk2c[, 9]) <- wk2c[, 9] <25
wk2c$CT[is.na(wk2c$CT)] <- 0
wk2c <- sapply(wk2c, as.character)
wk2c[is.na(wk2c)] <- ""
wk2c[1:39, 9] = ""
wk2c[40, 9] = "CT"
writeWorksheet( wb,  wk2c, sheet ="Paste Raw Data Here" , startRow = 1, startCol = 1, header = F)
setForceFormulaRecalculation(wb, sheet = "Paste Raw Data Here", T)
setForceFormulaRecalculation(wb, sheet = "Formatted Data", T)
setForceFormulaRecalculation(wb, sheet = "Vertical Values", T)
saveWorkbook(wb, "NewdataPCR.xlsx")

所以我的问题是如何从一个Excel电子表格中获取数据到R并将数据(格式正确)从excel电子表格导出到另一个(公式不是输入数据的方式的问题!)。

0 个答案:

没有答案