r - 将 txt 文件转换为 csv 并提取选定的行

标签 r text

我有 500 个文件(保存在同一目录中)。

所有这些文件都具有相同的格式,如下所示。虽然 excel 可以识别它们有 3 列,但如果我使用 x <- read.csv(xxx.txt, header=T),R 只会读取一列。 。我想有一种更聪明的方法可以做到这一点。

4077    40770     3.083 
4078    40780     2.985 
4079    40790     2.946 
4080    40800     3.010 
4081    40810     2.956 
4082    40820     3.080 
4083    40830     3.130 
4084    40840     3.167 
4085    40850     3.054 

将所有这些文件加载​​到 R 后,我只想提取第 0、第 100、第 200、第 300、....第 9000 行,并将它们保存在另一个目录中,并在 500 个单独的文件中具有相同的文件名。

是否可以用R自动完成?

最佳答案

我认为您可以使用 read.table() 函数来导入自由格式化(分隔)数据文件而不是专门为逗号分隔文件编写的 rad.csv() 来改进代码。正如 DWin 指出的那样,R 中没有第 0 行。您可以尝试以下方法:

directory <- "your.work.directoty" # where your data files are. 
                                   # It depends on your OS (Windows, Linux, MacOS)
ndirectory <- "your.new.directory"
files <- dir(directory)
files.to.read <- paste(directory, files, sep="/") 
files.to.write <- paste(ndirectory, files, sep="/")

for(i in 1:length(files.to.read) )
{
    d <- read.table(files.to.read[i], header=TRUE)
    temp <- d[c(1,seq(100, 9000, by=100)), ]
    write.table(temp, file=files.to.write[i], 
                row.names=FALSE)
}

希望这有帮助。

关于r - 将 txt 文件转换为 csv 并提取选定的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7421923/

相关文章:

c++ - GUI 和文本模式 C++ 设计以消除冗余(可选参数?函数重载?)

c++ - OpenCV 2.4 putText()与Scalar的理解

r - 如何删除嵌套列表列表中的元素?

r - 如何只保留 R 中复杂字符串中的信息?

从数据框中的列中删除小数

r - 如何使用 RSelenium 在网页中同时按下两个键(即 control-s)?

css - 放大时文本重叠

r - 使用rbind将多个.csv文件加载到R中的单个数据帧中的函数有什么问题?

ios - 替换 iOS 中的 NSLayoutManager 类

c++ - 如何编写 C++ 程序以在行数 > 30 时删除文本文件