You can fill in empty cells with empty data:
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)
Or, if you want to keep the original data:
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)
source share