0

ランク付きのテーブルがあります:

Apple 1
Banana 2
Orange 3
... 40

ここで、1 が最高ランク、40 が最低ランクです。

1 ~ 4 個のエントリを含む別のソースからベクトルを引き出しています。

c(apple,orange)
c(apple,banana,orange)
c(orange)

これらのベクトルをランクと一致させたいので、c(orange) は簡単で、ランク =3 ですが、c(apple,banana,orange) はすべての値から最も低い範囲を受け取る必要があるため、この場合は 3.

アドバイスをいただければ幸いです。

4

2 に答える 2

1

もしかしてこういうこと?

tab <- data.frame(
  fruit = c("apple","banana","orange"),
  rank  = 1:3
)

#   fruit rank
#1  apple    1
#2 banana    2
#3 orange    3

vec1 <- c("apple","orange")
vec2 <- c("apple","banana","orange")
vec3 <- c("orange")

tab$rank[max(match(vec1,tab$fruit))]
#[1] 3
tab$rank[max(match(vec2,tab$fruit))]
#[1] 3
tab$rank[max(match(vec3,tab$fruit))]
#[1] 3
于 2013-09-25T00:01:17.750 に答える