我有500个csv文件,其中每个文件的第一行都有该文件的名称。我希望从我的数据中排除文件名。
我试过这个,但它不起作用:
temp = list.files(pattern="*.csv")
myfiles = lapply(temp, read.delim)
myfiles = myfiles[-1, ]
答案 0 :(得分:1)
这显然是一个R问题。但是,我想我会建议使用Unix方法。对于这项任务,Unix将比R快得多,而IMO则是更自然的工具。如果你有Windows,你将不得不下载cygwin。这可能是一件令人头疼的事,然而,只有极少的知识,Unix是一个非常强大的工具。基本上有两种方法可以解决您的问题:
您可以修改每个文件,以便删除第一行。这意味着您的原始.csv将不再存在。
sed -i 1d *.csv
第一种方法存在问题。您可能希望保留原始文件。如果是这种情况,您需要从上面的代码中删除-i
标志。我们还需要使用for循环,以便我们可以命名每个新文件。
for f in *.csv; do sed 1d $f > new_$f; done
Unix中的for循环有点像R for循环,除了do
和done
替换{
和}
。