gpt4 book ai didi

r - 对于 data.table 中的每一行,找到值 == X 的列名

转载 作者:行者123 更新时间:2023-12-04 02:01:46 25 4
gpt4 key购买 nike

我有一个格式如下的数据表:

名称 X1234 X5555 X3000 X5000 X7500 X8745 X9451 X8338 X8377
对象 1 0+ 0+ 1+ 0+ 0+ 0+ 0+ 0+ 0+
对象 2 1+ 0+ 0+ 0+ 0+ 0+ 0+ 0+ 0+
对象 3 0+ 0+ 0+ 0+ 1+ 0+ 0+ 0+ 0+

我的数据表有几百行;让我们说对象 1 到 100。所有结构如下。每行,因此对象,包含一百多列。在这些列之一(名称是动态的,但始终以 X 开头)中,我正在寻找值 1+。我要完成的下一步是添加一个额外的列,我们将其命名为 Number,并用行的值 == 1+ 的列名填充它。

所以,我想要的结果是:

名称 X1234 X5555 X3000 X5000 X7500 X8745 X9451 X8338 编号
对象 1 0+ 0+ 1+ 0+ 0+ 0+ 0+ 0+ X3000
对象 2 1+ 0+ 0+ 0+ 0+ 0+ 0+ 0+ X1234
对象 3 0+ 0+ 0+ 0+ 1+ 0+ 0+ 0+ X7500

在 R 中,实现此目标的最佳方法是什么?我查找并试验了 apply 等函数,但遗憾的是还没有找到可行的解决方案。

我对在 R 中开发脚本还很陌生,如果我的问题不清楚或难以回答,我深表歉意。

Python 中的类似情况: Find the column name which has the maximum value for each row

最佳答案

which 的方法:

dat$Number <- names(dat)[which(dat == "1+", arr.ind = TRUE)[ , 2]]
# [1] "X1234" "X3000" "X7500"

关于r - 对于 data.table 中的每一行,找到值 == X 的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46725934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com