私は、ref、target、distanceという3つの列を持つデータフレームを持っています。各refには同じターゲットセットに対する測定距離があり、各refに対して最小距離のベクトルを取得したいと考えています。今私はforループでこれをやっていますが、これをベクトル化する方法があるはずです。Rフレーム内のループのためのベクトル化R
は、ここに私のコードです:
refs <- levels(data$ref)
result <- c()
for (ref in refs) {
# Find the minimum distance for observations with the current ref
# but be sure to protect against ref == target!
best_dist <- min(data[data$ref == ref & data$target != ref,]$distance)
result <- c(result, best_dist)
}
私は私のデータフレームがこのように設定するか、これをベクトル化するための良い方法があることによって運命づけられていますか?助けてくれてありがとう!
に変換しますa)そこに行方不明... – adibender
ta。 – mnel
これはそのまま正しく動作しないようです。 Ops.factor(ref、target)のエラー:要素のレベルセットが異なる** ただし、** DT [、list(bestdist = min(distance))、by = ref] ** 出力は出力されますが、ref!= targetチェックは出力されません。 – weitzner