确定R中案例的列表(变量)中的位置

时间:2014-12-07 23:01:48

标签: r

如何确定矢量中案例的数字位置?

我有一个变量,例如,Var有多个案例:

Case_1    <- 22
Case_2    <- 33
Case_3    <- 155
Case_4    <- 321
Var <- cbind(c(Case_1,Case_2,Case_3, Case_4))
names(Var) <- c("Case_1","Case_2","Case_3", "Case_4")
Var <- sort(Var, decreasing = TRUE)

我想知道此列表中案例的位置(在此示例中 - Case 4是位置1Case_3是位置2,等等。我是在R?

做的

2 个答案:

答案 0 :(得分:3)

以下是两种方式:

Case_1    <- 22
Case_2    <- 33
Case_3    <- 155
Case_4    <- 321
Var <- cbind(c(Case_1,Case_2,Case_3, Case_4))
names(Var) <- c("Case_1","Case_2","Case_3", "Case_4")
Var <- sort(Var, decreasing = TRUE)

# By Value
n <- which(Var == 321)
cat("The position with a value of 321 is", n)
     

值为321的位置为1

# By Name
n <- which(names(Var) == "Case_1")
cat("The position with of Case_1 is", n)
     

Case_1的位置为4

答案 1 :(得分:1)

您可以使用match()功能:

myvec <- letters

> myvec
 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"

 > match('e',myvec)
[1] 5

你以这种方式获得索引。

至于你的例子:

Var <- read.table(header=F, text= "Case_1    22
Case_2    33
Case_3    155
Case_4    321")

Var <- Var[order(Var$V1, decreasing=T), ] #sort it decreasing

> match('Case_4',Var$V1)
[1] 1