查找R中最接近的较高值的列
我试图找到与另一列值最接近的列的索引(或名称)。更准确地说,我有一个数据集,看起来像:查找R中最接近的较高值的列,r,R,我试图找到与另一列值最接近的列的索引(或名称)。更准确地说,我有一个数据集,看起来像: data <- data.frame(cum_1 = c(1,2), cum_2 = c(2,3), cum_3 = c(3,4), median = c(1, 2.2)) data我相信有更优雅的方法可以做到这一点,但这里有一个基本的开始: apply(数据,1,函数(x){ val我相信有更优雅的方法可以做到这一点,但这里有一个基
data <- data.frame(cum_1 = c(1,2),
cum_2 = c(2,3),
cum_3 = c(3,4),
median = c(1, 2.2))
data我相信有更优雅的方法可以做到这一点,但这里有一个基本的开始:
apply(数据,1,函数(x){
val我相信有更优雅的方法可以做到这一点,但这里有一个基本的开始:
apply(数据,1,函数(x){
val您可以使用max.col
作为矢量化选项:
max.col(data[-ncol(data)] - data$median >= 0, ties.method = 'first')
#[1] 1 2
data[-ncol(data)]
删除最后一列(median
),并用data$median
减去每一列,得到:
data[-ncol(data)] - data$median
# cum_1 cum_2 cum_3
#1 0.0 1.0 2.0
#2 -0.2 0.8 1.8
我们将此输出与=0
进行比较,以获得TRUE
/FALSE
值
data[-ncol(data)] - data$median >= 0
# cum_1 cum_2 cum_3
#[1,] TRUE TRUE TRUE
#[2,] FALSE TRUE TRUE
由于TRUE>FALSE
我们可以使用max.col
来获取每行中最大值的列索引。在这种情况下,如果有多个TRUE
值,我们指定ties.method='first
来获取第一个索引。max.col
可以用于向量化选项:
max.col(data[-ncol(data)] - data$median >= 0, ties.method = 'first')
#[1] 1 2
data[-ncol(data)]
删除最后一列(median
),并用data$median
减去每一列,得到:
data[-ncol(data)] - data$median
# cum_1 cum_2 cum_3
#1 0.0 1.0 2.0
#2 -0.2 0.8 1.8
我们将此输出与=0
进行比较,以获得TRUE
/FALSE
值
data[-ncol(data)] - data$median >= 0
# cum_1 cum_2 cum_3
#[1,] TRUE TRUE TRUE
#[2,] FALSE TRUE TRUE
由于TRUE>FALSE
我们可以使用max.col
来获取每行中最大值的列索引。在这种情况下,如果超过1个值TRUE
我们指定ties.method='first
来获取第一个索引。谢谢你的回答!这似乎有效,但我很难将其应用到我的实际数据中a我真的不明白你是如何将中值
设置为进行比较的值HI@cynk34;我添加了一些解释,希望能有所帮助。请看一看。由于你的解释,我成功了,非常感谢!感谢你的回答!这似乎有效,但我很难将其应用到我的actu中al数据集,因为我真的不明白您是如何将中值
设置为进行比较的值hi@cynk34;我添加了一些解释,希望能有所帮助。请看一看。由于您的解释,我成功了,非常感谢!非常好,非常感谢!非常好,非常感谢!