.tps ファイルを R に読み込もうとしています。
サンプル ファイルは、次の場所で入手できます。
Rに読み込もうとしている実際のファイルには、明らかにもっと多くの個人/ IDがあります(> 1000)
.tps ファイル形式は、TPSDIG によって生成されます。
http://life.bio.sunysb.edu/morph/
ファイルは ANSI プレーン テキスト ファイルです。
このファイルには、次のような X 座標と Y 座標、および標本情報が含まれています。
主な問題は、標本によって属性の数が異なることです (たとえば、LM ランドマークが 4 つあるものと 6 つあるもの、カーブが 2 つあるもの、何もないもの、したがって関連するポイントがないものがあります)。
for ループと read.table を使用してみましたが、さまざまな数の属性を説明する方法が見つかりません。
ファイル開始の例
LM=3
1 1
2 2
3 3
CURVES=2
POINTS=2
1 1
2 2
POINTS=2
1 1
2 2
IMAGE=COMPLETE/FILE/PATH/IMAGE
ID=1
SCALE=1
LM=3
1 1
2 2
3 3
CURVES=2
...
すべての標本が同じ数の属性を持つ場合に機能するダミー コードの例。
i<-1
landmarks<-NULL
while(i < 4321){
print(i)
landmarks.temp<-read.table(file="filepath", sep=" ", header=F, skip=i, nrows=12, col.names=c("X", "Y"))
i<-i+13
landmarks.temp$ID<-read.table(file="filepath", sep=c(" "), header=F, skip=i, nrows=1, as.is=T)[1,1]
i<-i+1
landmarks.temp$scale<-read.table(file="filepath", sep=c(" "), header=F, skip=i, nrows=1, as.is=T)[1,1]
i<-i+2
landmarks<-rbind(landmarks, landmarks.temp)
print(unique(landmarks.temp$ID))
}