具有以下矩阵:
[,1] [,2] [,3] [,4]
[1,] 231 14 517 310
[2,] 1 154 18 21
[3,] 121 6 198 23
我想只得到每行的最小范围在2到30之间的行。
每行的最小范围:
[1] 79
[2] 3
[3] 17
所以我们只得到[2]和[3]
每行的最大范围在0到160之间:
[1] 503
[2] 153
[3] 192
最后我们只得到满足这两个条件的[2]。你能提供一个R语言函数来生成这个结果吗?
问候迪米特里斯
下面是一个使用函数dist()
的解决方案:
m <- matrix(
c(231, 14, 517, 310,
1, 154, 18, 21,
121, 6, 198, 23 ), 3, byrow=TRUE)
mi <- apply(m, 1, function(x) min(dist(x)))
ma <- apply(m, 1, function(x) max(dist(x)))
m[mi > 2 & mi < 30 & ma > 0 & ma < 160, ]
设置数据
m <- read.table(text="231 14 517 310
1 154 18 21
121 6 198 23")
m <- as.matrix(m)
每行的最大范围
maxr <- apply(m, 1, function(x) diff(range(x)))
每行的最小范围
minr <- apply(m, 1, function(x) min(diff(sort(x))))
将其串在一起,形成一排的条件
m[minr > 2 & minr < 20 & maxr > 0 & maxr < 160, ]
# 1 154 18 21
这个问题可能是封闭的,因为它听起来很模糊,但我真的问这个,因为我不知道或者我的数学背景不够。 我试图实现一个挑战,其中一部分挑战要求我计算矩阵的最小值和最大值。我对矩阵的实现及其操作没有任何问题,但是什么是矩阵的最小值和最大值?考虑到3x3矩阵是9个数中最小的数,最大的是最大的还是其他什么?
我实现了c程序,可以找到矩阵的元素:行的最大元素,同时列的最小元素,或行的-min元素,同时列的最大元素。例如,我们有数据。包含以下内容的txt文件: 4 7 8 9 10 6 5 4 11 5 0 1 12 4 2 7 13- 其中4是n-矩阵大小(4x4),7和10是这些数字。 下面是代码: 问题:我想知道我的代码是不是“脏”代码?因为我总是渴望让一切变得如此困难,只要有可能让它变得容易。是否
我正在寻找一个有效的解决方案,从矩阵中选择不重叠的值,而不考虑成本的最小化。匈牙利算法通过选择一个代价最小的组合来解决指派问题。然而,我想要一个最大值的最小化。 匈牙利人会选择 总成本=1+2+5=8 但是,最大值为5。 我希望将组合选择为 所以我想要的输出是:4,3,2 而不是成本最小化。我想选择一个最小最大数量的组合。
我碰到了R的< code>range函数。它确实是一个有用的工具,并使代码更具可读性,但是如果用一个简单的包含< code>min和< code>max的一行程序来代替它,它的速度可以提高一倍。 我做了一些基准测试,range函数的“糟糕”性能让我吃惊。为了进行比较,我编写了一个名为< code>range2的函数,它使用了min和max(参见代码)。除了速度之外,如果一个简单的一行程序可以胜过这
我一直在寻找这个问题的答案,但运气不佳,所以希望有人能帮助我! 我正在处理周期性数据,我试图找到两个波峰和两个波谷的相关值——这不一定等同于最大/最小和第二个最大/最小值,而是最大/最小和第二个最大/最小值,条件是该值大于/小于前面和后面的值。 这是一个循环的例子 我有 1000 个周期,所以我在 dplyr 中使用group_by对周期进行分组,然后希望在组中应用条件最大值/最小值参数。 我很感
问题内容: 最近在一次采访中有人问我这个问题。 给定以下代码,静态整数的最小和最大可能值是多少? 我告诉他们,最大值将为25(在没有竞争条件的情况下),而最小值将为5(在每次迭代时所有线程之间的竞争条件的情况下)。 但是面试官说,最小值甚至可以低于5。这 怎么可能? 问题答案: 我声称最小值可能是2。 这样做的关键是的非原子性,即它是读和写,它们之间可能有其他操作。 调用线程T1..T5: T1读