我有以下a
:
> a
[1] 0.32142857 0.21428571 0.10714286 0.46428571 0.42857143 0.57142857 0.35714286 0.50000000 0.67857143 0.07142857 0.92857143 0.60714286
[13] 0.17857143 0.25000000 1.00000000 0.71428571 0.64285714 0.78571429 0.57142857 0.28571429 0.57142857 0.39285714 0.96428571 0.85714286
[25] 0.75000000 0.53571429 0.82142857 0.14285714 0.39285714 0.21428571 0.03571429 0.89285714
> str (a)
num [1:32] 0.321 0.214 0.107 0.464 0.429 ...
> class (a)
[1] "numeric"
我想找到特定元素的索引值。 当我将它用于整数时,它可以工作,但不适用于其他人:
> which (a==1)
[1] 15
> which (a==0.10714286)
integer(0)
> match (0.10714286,a)
[1] NA
如何获取3
的索引值0.10714286
?
答案 0 :(得分:3)
您必须搜索最近的值:
val <- 0.10714286
idx <- which.min(abs(a - val))
答案 1 :(得分:0)
只需使用向量来存储数据。请仔细阅读以下代码:
> a=c(0.32142857,0.21428571,0.10714286,0.46428571,0.42857143)
> str(a)
num [1:5] 0.321 0.214 0.107 0.464 0.429
> a[1]
[1] 0.3214286
> a[2]
[1] 0.2142857
> a[3]
[1] 0.1071429
> a[4]
[1] 0.4642857
> which(a==0.10714286)
[1] 3
> class(a)
[1] "numeric"
> match(0.10714286,a)
[1] 3
希望它适合你。