我需要将R中的数据框导出到Excel工作表,可以通过以下方式完成:
require("xlsx")
write.xlsx(x, file, sheetName="Sheet1", col.names=TRUE,
row.names=TRUE, append=FALSE, showNA=TRUE)
Run Code Online (Sandbox Code Playgroud)
然后,我将导出的数据从Excel工作表的单元格"A1"开始粘贴.我也可以设置,append=TRUE因此数据将添加到工作表的末尾.
是否有可能把它放入特定的细胞?我需要将数据框导出到从单元格开始的范围C10.这可能吗?
更新:工作
表包含行1-9和列中的数据A-B.因此,不可能只将空单元格添加到数据框并将其粘贴到Excel工作表中,因为这些空单元格将擦除数据.
你可以用这个包来做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)
Run Code Online (Sandbox Code Playgroud)
您可以用空数据填充空单元格:
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)
Run Code Online (Sandbox Code Playgroud)
或者,如果您想保留原始数据:
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)
Run Code Online (Sandbox Code Playgroud)