0

我想读取 300 个 *.csv 格式的数组,丢弃第一行和第一列。我知道如果我在“read.csv”中使用“header=TRUE”,它不会考虑第一行。例如:

  mydta.without.first.row <- read.csv("C:\\Users\\Desktop\\myarray.csv",header=FALSE)

有什么论据我可以使用和丢弃第一列吗?

4

1 回答 1

4

您可以在列表中加载 300 个数据集:

我首先将所有 .csv 文件放在一个目录中,然后:

gdir <- "dir-containing-your-300-files"
fn <- list.files(gdir, pattern="*.csv", full.names=F)
ldf <- lapply(fn, function(x) read.csv(x,header=F)[-1,-1])

你最终会得到一个没有第一行和第一列的 300 个 data.frames 的列表。每个列表元素都将附加一个名称(您的文件名)。

如果您想在文件中写入新的 data.frames(以 new.filename.csv 作为文件名)。

mapply(write.table,x=ldf,file=paste("new",fn,sep="."),MoreArgs=list(row.names=F,col.names=F,sep=","))

这将写入新文件,因此您不会删除任何原始文件。您可能需要调整命令以满足您的需要。

于 2013-10-24T15:51:23.203 回答