从R中的原始文件中提取数据
Posted
技术标签:
【中文标题】从R中的原始文件中提取数据【英文标题】:Data extraction from a raw file in R 【发布时间】:2017-09-15 10:34:51 【问题描述】:我需要使用 R 从原始文件中提取数据。之前有一些无用的数据,实际表从第 100 行开始。现在可以使用 read.csv(skip=99) 从该行读取数据但我想通过自动从该行开始读取来使其动态化,因为有多个文件的实际表从不同的行开始。 有用数据的第一行将从字符串“时间”开始。
任何帮助将不胜感激。 谢谢
【问题讨论】:
“原始”是文本文件还是二进制文件?由于您使用的是read.csv
,我猜是文本,但要确保因为“原始”往往意味着二进制,但“非结构化”或“半结构化”更能表示 CSV 卡在字符流中。
是的,它是一个文本文件
【参考方案1】:
使用readLines
获取文本文件作为字符向量。
然后找到以“Time”开头的行并丢弃之前的元素。
您现在可以通过read.csv(text=)
将剩余部分放入数据框。
这是一个例子。
# make a dummy file
write("junk\njunk\nTime,x\n1,2\n3,4", "tmp.csv")
x <- readLines("tmp.csv")
i <- grep("^Time", x)
x <- x[i:length(x)]
read.csv(text=x)
【讨论】:
以上是关于从R中的原始文件中提取数据的主要内容,如果未能解决你的问题,请参考以下文章
在 C++ 中使用 libsndfile 从 WAV 文件中提取原始音频数据