【问题标题】:R script, count max values in a row of dataR脚本,计算一行数据中的最大值
【发布时间】:2023-03-16 22:47:01
【问题描述】:

我在 R 脚本中有这段代码,它的作用是从数据框(例如 4 列)中为每一行查找并计算具有最大值的列。但是当连续有关系时(比如两个或三个最大值),下面的代码只考虑第一个(不计算其他的)。即使行中有多个最大值(并列?),R中是否有任何方法可以计算具有最大值的列。

m_0 <- read.csv(file="Tests/myResults", head=FALSE, sep=",")

varb_m0 <- c(m0$ V4)

#create dataframe

myDataFrame

#find max
result <- apply(myDataFrame,1,which.max)

#factor it
result <- factor(result)

#print result
names(myDataFrame)[result]

summary(result)

【问题讨论】:

  • 你能举一个myDataFrame的例子吗,也许是dput()
  • 这不是我们可以复制的例子。如果你这样做dput(myDataFrame)(或dput(head(myDataFrame)))我们可以。
  • 您的意思是您需要 myResult 文件吗?对不起,我是 R 新手,我不知道你在说什么
  • 我们不需要整个文件。 dput(head(myDataFrame)) 会吐出一些 R 代码,然后任何人都可以使用这些代码来重现您的大量数据。

标签: r max summary


【解决方案1】:

一个简单的方法是先创建一个函数:

all_max <- function(x) {which(x == max(x))}  #Index of each value that is maximum.

然后将其应用于您的数据框:

result <- apply(myDataFrame,1,all_max)

我认为其余的应该是相同的,尽管您没有提供任何数据来测试它。

【讨论】:

  • 我将尝试它,但我相信 Excel/Libre Calc 更易于使用和管理,因此我将尝试使用它。不过谢谢:)
猜你喜欢
  • 1970-01-01
  • 2021-10-24
  • 2018-09-22
  • 1970-01-01
  • 2020-05-21
  • 2013-07-07
  • 1970-01-01
  • 2018-08-02
  • 1970-01-01
相关资源
最近更新 更多