我的问题涉及到在将数据导入R时如何跳过文件开头的元数据。我的数据为.txt格式,其中第一行是描述数据的元数据,需要将其过滤掉。下面是制表符分隔格式的数据框的最小示例:
Type=GenePix Export
DateTime=2010/03/04 16:04:16
PixelSize=10
Wavelengths=635
ImageFiles=Not Saved
NormalizationMethod=None
NormalizationFactors=1
JpegImage=
StdDev=Type 1
FeatureType=Circular
Barcode=
BackgroundSubtraction=LocalFeature
ImageOrigin=150, 10
JpegOrigin=150, 2760
Creator=GenePix Pro 7.2.29.002
var1 var2 var3 var4 var5 var6 var7
1 1 1 molecule1 1F3 400 4020
1 2 1 molecule2 1B5 221 4020
1 3 1 molecule3 1H5 122 2110
1 4 1 molecule4 1D1 402 2110
1 5 1 molecule5 1F1 600 4020
如果知道实际数据的起始行,则可以使用下面显示的基本命令:
mydata <- read.table("mydata.txt",header=T, skip=15)
哪个会回来;
mydata
var1 var2 var3 var4 var5 var6 var7
1 1 1 1 molecule1 1F3 400 4020
2 1 2 1 molecule2 1B5 221 4020
3 1 3 1 molecule3 1H5 122 2110
4 1 4 1 molecule4 1D1 402 2110
5 1 5 1 molecule5 1F1 600 4020
问题是我需要编写一个脚本来读取各种数据集,其中实际数据开始的行号从一个数据集到另一个数据集是不同的。我可以想象使用类似sqldf
软件包的内容,但是我对sql不太熟悉。
任何帮助将不胜感激。
您可以count.fields()
用来确定skip
参数。我给你打电话"x.txt"
read.table("x.txt", skip = which.max(count.fields("x.txt") == 7) - 1,
header = TRUE)
# var1 var2 var3 var4 var5 var6 var7
# 1 1 1 1 molecule1 1F3 400 4020
# 2 1 2 1 molecule2 1B5 221 4020
# 3 1 3 1 molecule3 1H5 122 2110
# 4 1 4 1 molecule4 1D1 402 2110
# 5 1 5 1 molecule5 1F1 600 4020
因此,这开始在七个字段的第一次出现时读取文件
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句