n=c(0,200,500)
m=as.matrix(expand.grid( n,n))
m #possible combin.
我希望得到所有可能的对(a< b)以便稍后在函数中运行它们来过滤矩阵。
#pairs should be somehow like this (a always smaller than b in each single attribute of the two attribute vector)
a=c(0,0)
b=c(200,200)
...
a=(200,0)
b=(500,200)
...
a=c(200,200)
b=c(500,500)
我想将结果存储在一个矩阵中,即它的一行看起来像:c(a,b) c(0,200,200,500)
在lower.tri上有一些关于如何划分矩阵的文章,我试过但没有成功。
为了更好地理解,想象一下可能组合的每一行都是一个向量。矢量的第一个元素是以分钟为单位的飞行时间。第二个是价格。 搜索价格在500美元到500美元之间的航班并没有多大意义。当航班最低价格为500美元且最高价格为200美元时,也不会。 “a”始终是最小参数,“b”是最大参数
答案 0 :(得分:3)
我不确定我是否理解正确,但也许这就是:
TableItem item = table.getSelection()[ 0 ]; // assumes a single selected item
item.setText( 1, "update first column" );
// or
item.setText( new String[]{ "col 1 value", "col 2 value" } );
// or, for a single-columned table
item.setText( "updated value" );
修改强>
在你的评论之后,也许这个:
combn(nrow(m), 2, function(ind, mat) mat[ind, ], mat = m)
#, , 1
#
# [,1] [,2]
#[1,] 0 0
#[2,] 200 0
#
#, , 2
#
# [,1] [,2]
#[1,] 0 0
#[2,] 500 0
#
#, , 3
#
# [,1] [,2]
#[1,] 0 0
#[2,] 0 200
#
#...
编辑2:
m1 <- m[order(rowSums(m)),] #this is one definition of "smaller"
combs <- combn(nrow(m1), 2, function(ind, mat) mat[ind, ], mat = m1)
combs[,, apply(combs, 3, function(mat) diff(rowSums(mat)) != 0)]
如果仍然不完全符合您的需要,您应该可以调整它。