将< code>dplyr::arrange与< code>gtools::mixedorder一起使用时,我注意到了一个意外的结果。
考虑:
library(tidyverse)
test <- data.frame(V1 = c("all13_LG1", "all13_LG10", "all13_LG11",
"all13_LG12", "all13_LG13", "all13_LG14", "all13_LG15", "all13_LG16",
"all13_LG2", "all13_LG3", "all13_LG4", "all13_LG5", "all13_LG6",
"all13_LG7", "all13_LG8", "all13_LG9"),
V2 = c(rep(1:16)))
test2 <- test %>% arrange(gtools::mixedorder(V1))
test3 <- test %>% slice(gtools::mixedorder(V1))
在test2中,第1列排序:“all13_LG1”,“all13_LG3”,“all13_LG4”,“all13_LG5”,“all13_LG6”,“all13_LG7”,“all13_LG8”,“all13_LG9”,“all13_LG10”,“all13_LG11”,“all13_LG12”,“all13_LG13”,“all13_LG14”,“all13_LG15”,“all13_LG16”,“all13_LG2”
而在test3中,列的排序与使用gtools:mixedorder时预期的一样
为什么当我组合排列和混合工具时会发生这种情况?这是一个错误吗?
非常感谢,安妮克
我们可以将切片
与混合排序
和匹配
library(dplyr)
test %>%
slice(match(gtools::mixedsort(V1), V1))
-输出
V1 V2
1 all13_LG1 1
2 all13_LG2 9
3 all13_LG3 10
4 all13_LG4 11
5 all13_LG5 12
6 all13_LG6 13
7 all13_LG7 14
8 all13_LG8 15
9 all13_LG9 16
10 all13_LG10 2
11 all13_LG11 3
12 all13_LG12 4
13 all13_LG13 5
14 all13_LG14 6
15 all13_LG15 7
16 all13_LG16 8
要在排列
中使用mixedorder
results,您需要对结果进行
排序。<>
library(dplyr)
test %>% arrange(order(gtools::mixedorder(V1)))
# V1 V2
#1 all13_LG1 1
#2 all13_LG2 9
#3 all13_LG3 10
#4 all13_LG4 11
#5 all13_LG5 12
#6 all13_LG6 13
#7 all13_LG7 14
#8 all13_LG8 15
#9 all13_LG9 16
#10 all13_LG10 2
#11 all13_LG11 3
#12 all13_LG12 4
#13 all13_LG13 5
#14 all13_LG14 6
#15 all13_LG15 7
#16 all13_LG16 8
好的,最近我在寻找一种在PowerShell中实现空合并的方法,我遇到了这篇文章:在PowerShells中实现空聚合。 我看到了@Zenexer的评论,很感兴趣。语法如下: 这非常有效。然而,我的一位同事(沃尔特·帕克特)和我非常感兴趣,对语法做了更多的挖掘,发现了一些真正的奇怪之处。 在我进入怪异之前,任何人都可以指出任何解释这种语法的文档吗? 经验教训: < li >测试应该进入数组的最后一
我使用的是mongodb(v2.6.7)和mongo(2.6.7)shell客户端。 我正在尝试使用insert和update命令返回的WriteResult对象。 根据mongodocs,如果出现错误,它将返回一个writeResult对象,其中包含writeError子文档。但我无法在shell或mongo的javascript文件中访问此子文档。 下面是我的问题的说明。 我插入一个对象,并获
我有以下代码来解析一个JSON文件: 要处理以下JSON文件: 如果我执行此代码,我将收到以下错误: 所以我开始一步一步地调试应用程序,看看part processing()中的哪个代码部分抛出了这个异常。令人惊讶的是,那里的所有代码都正常执行:没有抛出异常,也没有返回结果I except。 更让我惊讶的是,当我稍微改变第一种方法的代码时,它可以在不产生异常的情况下工作。 我不知道println方
问题内容: 我在GregorianCalendar类中遇到一个奇怪的行为,我想知道我是否真的做得不好。 仅当初始化日期的月份的实际Maximum大于我将日历设置为的月份时,才追加此值。 这是示例代码: 我知道问题是由于日历初始化日期是31天(可能是5月),与设置为2月(28天)的月份混淆了。修复很容易(只需在设置年和月之前将day_of_month设置为1),但是我想知道这确实是想要的行为。有什么
问题内容: 我正在为一个问题而苦苦挣扎,我不明白为什么它不起作用。如何通过将变量传递并转换为? 为什么在顶部代码段中不起作用,但在行下方的底部代码段中起作用? 唯一的区别似乎是添加了一个额外的变量,该变量也被键入为? 问题答案: 该是一种原始类型,同时是一个普通的Java类。您不能在原始类型上调用方法。但是该方法在上可用,如javadoc中所示 有关这些原始类型的更多信息,请参见此处
问题内容: 为什么的到哪里去了? 问题答案: 删除任何字符,并从字符串的开头和结尾。