gpt4 book ai didi

r - 在 R 中导入数据集时跳过元数据

转载 作者:行者123 更新时间:2023-12-01 18:18:08 26 4
gpt4 key购买 nike

我的问题涉及将数据导入 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

因此,这将在第一次出现七个字段时开始读取文件

关于r - 在 R 中导入数据集时跳过元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29071445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com