我需要读取3列文件“001.txt”,并导出仅包含第二列的新名称“new001C2.txt”的文件。我可以一次完成一个文件,但是我刚开始时并没有找到一种自动的方法来处理目录中的所有文件。R读取txt文件将特定列写入新的txt文件
回答
这可以用lapply
完成。首先,制作所有文件名的列表。然后用lapply
来阅读。这将每个文件放入一个列表中,因此“001.txt”将成为列表的第一个成员,并且可以通过readAll[[1]]
进行访问。 newFiles
创建新文件的列表,使数字与原始文件名保持一致。然后我们再使用lapply
来将每个文件写入单独的文件。
files <- c("001.txt", "002.txt", "003.txt")
readAll <- lapply(files, read.csv)
col2 <- lapply(readAll, function(x) x[,2])
newFiles <- paste0("new", gsub(".txt", "", files), "C2.txt")
lapply(1:length(col2), function(i) write(col2[[i]], newFiles[i]))
感谢RScriv。我不知道为什么它不工作:lapply(文件,read.csv)中的错误[,2]:不正确的维数 – PTSDresearcher
对不起。我认为现在已经解决了。 –
感谢RScriv。最后一个问题。新名称必须保留旧文件名中的数字,不幸的是,这些数字都与数字之间的空格有关。例如,如果第一个主题是005.txt,他是列表中的第一个,所以他的新文件是new001C2而不是new005C2。谢谢你的帮助! – PTSDresearcher
如果你是一个基于Linux的系统上,这里有一个简单的解决方案,你可以直接从shell中运行:
cut -f 2 001.txt > new001C2.txt
- 1. 从.txt文件中读取和写入.txt文件
- 2. 读取一个特定的.txt文件?
- 3. 从txt文件读取和写入
- 4. 读取和写入一个txt文件
- 5. 写入/读取计数到txt文件
- 6. 写入和读取txt文件android
- 7. 从JAR读取/写入.txt文件
- 8. Python3读取和写入.txt文件
- 9. 读取和写入txt文件
- 10. 从txt文件读取并写入HBase
- 11. 将txt文件读入ObjectList
- 12. 从.txt文件读取特定行
- 13. 将RegEx写入txt文件
- 14. 将NSMutableArray写入txt文件
- 15. 将txt文件读入perl的散列
- 16. 写入TXT文件?
- 17. 读取.txt文件
- 18. 读取.txt文件
- 19. 将文件路径写入.txt文件
- 20. 将txt文件读入列表Python
- 21. 将.txt文件读入2D阵列
- 22. 将列表写入文件txt(utf-8)
- 23. R - 在特定行后读取.txt文件中的行
- 24. 将俄文文本写入txt文件
- 25. Python的TXT文件级读写文件
- 26. 在R中反转读取.txt文件
- 27. 用Java读写TXT文件
- 28. 读取特定的txt文件并将其重新排列为给定格式
- 29. java - 在.txt文件中的特定位置读取和写入文本
- 30. 写入特殊字符到txt文件
分享你的代码与一个文件来做到这一点,我们可以帮你将其变成一个函数并将其应用于目录中的所有文件。 – Gregor
谢谢舒雅。这是我可以用一个文件做的事情:X < - read.csv(“001.txt”,header = TRUE); X2 < - X [,2];写(X2,file =“new001C2.txt”,ncolumns = 1,sep =“”) – PTSDresearcher