Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 查找值在某个范围内的位置_R - Fatal编程技术网

R 查找值在某个范围内的位置

R 查找值在某个范围内的位置,r,R,我有一个这样的数据帧 "X1" "X2" "X3" "X4" "X5" "X6" "X7" "X8" "X9" "X10" "X11" "X12" "X13" "X14" "X15" "X16" "X17" "X18" "X19" "X20" "X21" "X22" "X23" "X24" 13062 145 9 2 0 0 0 0 0 0 0

我有一个这样的数据帧

"X1"    "X2"    "X3"    "X4"    "X5"    "X6"    "X7"    "X8"    "X9"    "X10"   "X11"   "X12"   "X13"   "X14"   "X15"   "X16"   "X17"   "X18"   "X19"   "X20"   "X21"   "X22"   "X23"   "X24"
    13062   145 9   2   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
    586717  66068   18713   7105    3188    1506    750 460 251 141 81  41  39  14  12  6   1   0   1   0   0   0   0   0
    55893   1371    155 43  9   3   3   2   0   2   0   1   0   1   0   1   0   0   0   0   0   0   0   0
    63123   2573    266 35  10  6   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
    14258   63  4   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
    751302  43884   6109    1280    368 123 36  18  6   0   2   1   0   0   0   0   0   0   0   0   0   0   0   0
    45018   1017    89  10  6   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
    182932  6581    941 238 73  43  20  9   6   8   2   1   1   0   0   1   0   1   0   0   0   0   0   0
    23741   356 4   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
    4391    15  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
    20201   546 75  17  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
    48193   943 50  9   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
    11284   89  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
    4819    48  2   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
我正在寻找每一行的平均值

df$mean=apply(df,1,mean)

我想在第1列到第24列的范围内计算出平均值

例如:

如果x值为1,2,3,4,y值为10,20,30,40。如果我要找到对应于x中15的值,我会得到1.5。这里我想找出平均值的位置,它可以给我一个浮点数,指定它位于第1.5列

更新:

样本数据

X1  X2  X3  X4  X5  X6  X7  X8  X9  X10 mean
10  20  30  40  50  60  70  80  90  100 55
这里的平均值是5.5。如何计算上表中类似的值


可以假设每行中的值都已排序

dfslight备注:使用
rowMeans
查找每行速度/简洁性的平均值“更好”。rowMeans更好。我会记得的。由于我不理解这个问题,你能展示你对所提供数据的期望输出吗?平均值是否在几列之间?我建议先重新排列你的数据。例如,数据帧的名称不仅是名称,而且是您正在使用的数据。了解。
df<-read.table(text="X1    X2   X3    X4    X5  X6    X7    X8    X9    X10   X11   X12   X13   X14   X15   X16   X17   X18   X19   X20   X21   X22   X23   X24
        13062   145 9   2   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       586717  66068   18713   7105    3188    1506    750 460 251 141 81  41  39  14  12  6   1   0   1   0   0   0   0   0
       55893   1371    155 43  9   3   3   2   0   2   0   1   0   1   0   1   0   0   0   0   0   0   0   0
       63123   2573    266 35  10  6   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       14258   63  4   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       751302  43884   6109    1280    368 123 36  18  6   0   2   1   0   0   0   0   0   0   0   0   0   0   0   0
       45018   1017    89  10  6   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       182932  6581    941 238 73  43  20  9   6   8   2   1   1   0   0   1   0   1   0   0   0   0   0   0
       23741   356 4   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       4391    15  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       20201   546 75  17  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       48193   943 50  9   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       11284   89  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       4819    48  2   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0",header=T)

df$mean<-rowMeans(df)

n<-ncol(x)
apply(df,1,function(x) (max(which(x[n]<x[-n]))+min(which(x[n]>x[-n])))/2)

[1] 1.5 2.5 1.5 1.5 1.5 2.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5
df<-read.table(text="X1    X2   X3    X4    X5  X6    X7    X8    X9    X10   X11   X12   X13   X14   X15   X16   X17   X18   X19   X20   X21   X22   X23   X24
        13062   145 9   2   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       586717  66068   18713   7105    3188    1506    750 460 251 141 81  41  39  14  12  6   1   0   1   0   0   0   0   0
       55893   1371    155 43  9   3   3   2   0   2   0   1   0   1   0   1   0   0   0   0   0   0   0   0
       63123   2573    266 35  10  6   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       14258   63  4   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       751302  43884   6109    1280    368 123 36  18  6   0   2   1   0   0   0   0   0   0   0   0   0   0   0   0
       45018   1017    89  10  6   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       182932  6581    941 238 73  43  20  9   6   8   2   1   1   0   0   1   0   1   0   0   0   0   0   0
       23741   356 4   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       4391    15  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       20201   546 75  17  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       48193   943 50  9   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       11284   89  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
       4819    48  2   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0",header=T)

df$mean<-rowMeans(df)

n<-ncol(x)
apply(df,1,function(x) (max(which(x[n]<x[-n]))+min(which(x[n]>x[-n])))/2)

[1] 1.5 2.5 1.5 1.5 1.5 2.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5