gpt4 book ai didi

将值重新编码为一列

转载 作者:行者123 更新时间:2023-12-02 07:24:53 26 4
gpt4 key购买 nike

我有一个数据框,每行一个值,可能在几列之一中。如何创建包含 1 所在列号的单个列?我想使用 dplyr 来做到这一点,但我能想到的唯一方法涉及 for 循环,这似乎与 R 很不一样。

df<-data.frame(
a=c(1,0,0,0),
b=c(0,1,1,0),
c=c(0,0,0,1)
)

a b c
1 1 0 0
2 0 1 0
3 0 1 0
4 0 0 1

目标:

1 1
2 2
3 2
4 3

最佳答案

这里不需要dplyr。这就是 max.col() 的用途。由于该行中的所有其他值都将为零,因此 max.col() 将为我们提供出现 1 的列号。

max.col(df)
# [1] 1 2 2 3

如果你需要一个列,那么

data.frame(x = max.col(df))
# x
# 1 1
# 2 2
# 3 2
# 4 3

cbind()matrix() 用于矩阵。

关于将值重新编码为一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33929326/

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