我想根据xpath值动态使用升序或降序选项。
listy[1]
[[1]]
var1 var1.2
1 1 1
str(listy[1])
List of 1
$ :'data.frame': 1 obs. of 2 variables:
..$ var1 : int 1
..$ var1.2: int 1
listy[10]
[[1]]
var1 var1.2
1 10 10
str(listy[10])
List of 1
$ :'data.frame': 1 obs. of 2 variables:
..$ var1 : int 10
..$ var1.2: int 10
使用此抛出错误。
我们可以为整个" for"声明。但是当我们在哪里有更多的条件;订购和许多语句作为回报,然后它看起来代码重复只是为了升序或降序。
是否有任何选项可以在不使用条件的情况下使用" for"。
答案 0 :(得分:4)
每当我不得不动态订购时,这对我来说最好。 它利用了多个订单规范。 (http://www.w3.org/TR/xquery/#id-orderby-return)这有点不同,因为订单修饰符是一个标记而不是变量或表达式,所以它很难处理。 这就是为什么你必须有两个if语句和空的else语句。
let $order := "ascending"
for $aRslt in ("1","2","3","4")
order by
if($order eq "ascending") then $aRslt else() ascending,
if($order eq "descending") then $aRslt else () descending
return $aRslt