我需要将R中的数据框导出到Excel工作表,可以通过以下方式完成:
require("xlsx")
write.xlsx(x, file, sheetName="Sheet1", col.names=TRUE,
row.names=TRUE, append=FALSE, showNA=TRUE)
然后我将导出的数据从单元格开始粘贴" A1" Excel表格。我也可以设置append=TRUE
,以便将数据添加到工作表的末尾。
是否有可能将其置于特定单元格?我需要将数据框导出到从单元格C10
开始的范围。这可能吗?
更新
该工作表包含行1-9
中的数据以及列A-B
。因此,不可能只将空单元格添加到数据框并将其粘贴到Excel工作表中,因为这些空单元格将擦除数据。
答案 0 :(得分:6)
您可以使用包XLConnect
执行此操作。
library(XLConnect)
wb <- loadWorkbook("File_result.xlsx"), create = TRUE)
createSheet(wb, name = "Sheet1")
# here, you can set the startRow and startCol. Col A = 1, B = 2,...
writeWorksheet(wb,x,"Sheet1",startRow = 10, startCol = 3, header = TRUE)
# automatically adjust column width
setColumnWidth(wb, sheet = "Sheet1", column = 3:4, width = -1)
saveWorkbook(wb)
答案 1 :(得分:1)
您可以使用空数据填充空单元格:
data <- matrix(1:100, ncol=5)
col.offset <- 2
row.offset <- 9
emptycols <- matrix("", ncol=col.offset, nrow=nrow(data))
data <- cbind(emptycols, data)
emptyrows <- matrix("", nrow=row.offset, ncol=ncol(data))
data <- rbind(emptyrows, data)
write.table(data, "test.csv", row.names=FALSE, col.names=FALSE)
或者,如果您想保留原始数据:
data <- matrix(1:100, ncol=5)
col.offset <- 2
row.offset <- 9
orig.data <- as.matrix(read.csv("test.csv", header=FALSE, stringsAsFactors=FALSE))
orig.cols <- orig.data[1:nrow(data), 1:col.offset]
data <- cbind(orig.cols, data)
orig.rows <- orig.data[1:row.offset, 1:ncol(data)]
data <- rbind(orig.rows, data)