gpt4 book ai didi

r - 按行查找出现次数最多的值

转载 作者:行者123 更新时间:2023-12-02 14:33:10 24 4
gpt4 key购买 nike

我的问题如下:

我有一个包含多个因子变量的数据集,这些变量具有相同的类别。我需要找到每行最常出现的类别。如果是平局,可以选择任意值,不过如果我能更好地控制它那就太好了。

我的数据集包含一百多个因素。然而,结构是这样的:

df = data.frame(id = 1:3
var1 = c("red","yellow","green")
var2 = c("red","yellow","green")
var3 = c("yellow","orange","green")
var4 = c("orange","green","yellow"))

df
# id var1 var2 var3 var4
# 1 1 red red yellow orange
# 2 2 yellow yellow orange green
# 3 3 green green green yellow

解决方案应该是数据框中的一个变量,例如 var5,它包含每行最常见的类别。它可以是一个因子或一个数值向量(如果数据需要先转换为数值向量)

在这种情况下,我想要这样的解决方案:

df$var5
# [1] "red" "yellow" "green"

任何建议将不胜感激!提前致谢!

最佳答案

类似于:

apply(df,1,function(x) names(which.max(table(x))))
[1] "red" "yellow" "green"

如果出现平局,which.max 取第一个最大值。来自which.max 帮助页面:

Determines the location, i.e., index of the (first) minimum or maximum of a numeric vector.

例如:

var4 <- c("yellow","green","yellow")
df <- data.frame(cbind(id, var1, var2, var3, var4))

> df
id var1 var2 var3 var4
1 1 red red yellow yellow
2 2 yellow yellow orange green
3 3 green green green yellow

apply(df,1,function(x) names(which.max(table(x))))
[1] "red" "yellow" "green"

关于r - 按行查找出现次数最多的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19982938/

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