在数据帧的每列中找到最接近零的值 - R.

Joh*_*lee 0 loops r apply

我有一个包含几百列的数据框,每列都有数字数据.

对于每列,我想识别具有最接近零的值的单元格的值,而不是正数.

例如

X = c(-1,-2,-3,-4,-5,-6,-7,-8,-9,-10)
Y = c(5,4,3,2,1,0,-1,-2,-3,-4)
Z = c(-11,-12,-13,-14,-15,-16,-17,-18,-19,-20)

df <- data.frame(X, Y, Z)
Run Code Online (Sandbox Code Playgroud)

我想要一些函数(有趣)来返回这个向量:

fun(df)

[1] -1 0 -11
Run Code Online (Sandbox Code Playgroud)

我以为我可以使用应用函数,甚至可能使用循环或管道?

akr*_*run 6

我们循环遍历columns(sapply(...)),获取绝对值,找到最小值的索引which.min,并将列的值子集化.

unname(sapply(df, function(x) x[which.min(abs(x))]))
#[1]  -1   0 -11
Run Code Online (Sandbox Code Playgroud)