r - 如何获取值最接近 0 的列名?
问题描述
我有数据框df1,我想设置另一列,其值更接近 0:
df1
x <- c(1, 3,2)
y <- c(2, 1,4)
df1 <- data. frame(x, y)
df1
# x y
#1 1 2
#2 3 1
#3 2 4
愿望输出:
# x y closer
#1 1 2 x
#2 3 1 y
#3 2 4 x
解决方案
使用max.col
我们可以得到最接近 0 的值的索引
max.col(-abs(df))
#[1] 1 2 1
要获取列名,我们可以使用此索引从数据框中对其进行子集names
化
df$closest <- names(df)[max.col(-abs(df))]
df
# x y closest
#1 1 4 x
#2 5 2 y
#3 3 6 x
数据
df <- structure(list(x = c(1L, 5L, 3L), y = c(4L, 2L, 6L)), class = "data.frame",
row.names = c(NA, -3L))
推荐阅读
- ios - 我在 swift 中的多行标签不起作用,该短语在一行中超出标签的大小
- asp.net - 修改 Azure DevOps Web 配置
- python - 如何使用 pvlib 的 pvwatts 模型计算有效辐照度?
- python - 我想在我的数据框中将 1-May-19 和 5/1/2019 转换为 1/5/2019
- python - 如何使用 AdaBoostClassifier 中的概率获得预测类别?
- javascript - 在jquery post请求中传递数组不起作用
- r - 如何仅捕获R中字符串的一部分?
- javascript - 如何在新对象中转换数组对象?
- redis - Redis 缓存中的持久部分键
- laravel - 如果旧行已经存在,则使用 laravel 插入新行或删除旧行