R中特定列的最接近值

问题描述 投票:14回答:4

我想找到下面第x3列最接近的值。

data=data.frame(x1=c(24,12,76),x2=c(15,30,20),x3=c(45,27,15))
data
  x1 x2 x3
1 24 15 45
2 12 30 27
3 76 20 15

所以期望的输出将是

Closest_Value_to_x3
   24
   30
   20

请帮忙。谢谢

r dataframe closest
4个回答
2
投票

定义一个函数closest_to_3,它对向量进行操作,并返回最接近第三个成员的向量中的值:

closest_to_3 <- function(v) v[-3][which.min(abs( v[-3]-v[3] ))]

(成语v[-3]v删除第3个成员。)然后将此函数应用于数据框的每一行:

apply(data, 1, closest_to_3)
#[1] 24 30 20
© www.soinside.com 2019 - 2024. All rights reserved.