【问题标题】:Is there an R code that reads specific value before moving to the next column? [closed]在移动到下一列之前是否有读取特定值的 R 代码? [关闭]
【发布时间】:2020-05-28 16:20:55
【问题描述】:

在移动到下一列之前,是否有一个 R 代码按列读取矩阵中的特定值(大于 x)?该值每行只能确认一次。此外,每列的总和必须超过 15 的值。

        Col1  Col2  Col3 Col4  Col5
  Row1  16*   12     16     6    8
  Row2  16    10      8    17   10*
  Row3  12    13     18*    9   17
  Row4  13     7     12    19*  15
  Row5  7     17*    15    15   13
  Row6  14     3     10     6   10*

  Sum   16    17     18    19   20

除了第 5 列将使用第 2 行和第 6 行之和超过值 15 (20)

【问题讨论】:

  • 欢迎来到 Stack Overflow!帮助我们帮助您:提供minimal reproducible example。特别是在这里,除了edit提出您的问题以将您的示例数据包含在 R 命令dput() 生成的格式中,从示例数据中获得预期的输出将非常有帮助。至少对我来说,我很难理解您的问题,因此在此示例中查看您的预期输出可能会帮助人们更好地了解您,从而为您提供有用的答案。

标签: r matrix linear-programming


【解决方案1】:

此循环获取每列中超过 15 的第一个值,并且每行仅使用一次。它通过用零覆盖所选行来实现这一点。它不是一个完整的解决方案,但它可能仍然有帮助。

chosenNumber <- c()
for(i in 1:ncol(mydata)){
    where <- min(which(mydata[,i]>15))
    chosenNumber[i] <- mydata[where,i]
    mydata[where,] <- 0 
}

> chosenNumber 
[1] 16 17 18 17 NA

数据:

mydata <- as.matrix(read.table(text='        Col1  Col2  Col3 Col4  Col5
  Row1  16   12     16     6    8
  Row2  16    10      8    17   10
  Row3  12    13     18    9   17
  Row4  13     7     12    19  15
  Row5  7     17    15    15   13
  Row6  14     3     10     6   10',header=T))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多