- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难理解 reorder()
背后的逻辑。
假设 Var
定义如下:
Var <- factor(c(0.2, 0.1, -0.1))
order(Var)
现在,如果我想将它重新排序为 c(1, 2, 3),我将运行以下代码,它工作得很好。
Needed_Order <- c(1, 2, 3)
Var <- reorder(Var, Needed_Order)
order(Var)
但是如果我想将 Var
重新排序为 c(3, 1, 2) 则它不起作用
Needed_Order <- c(3,1,2)
Var <- reorder(Var, Needed_Order)
order(Var)
我希望得到 3 1 2
作为 order(var)
的输出,但它返回 2 3 1
。
最佳答案
我认为@prosoitos 已经有了很好的答案。我只是想说明为什么存在 reorder
函数及其用途。
让我们考虑经典的 iris
数据集
> data(iris)
> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
假设我们要绘制 Sepal.Width
值,按 Species
boxplot(Sepal.Width ~ Species, iris)
但这里的顺序是按物种名称排序,而我们认为如果按每个物种的平均萼片宽度排序,绘图会更好看。这就是 reorder
是一个快速、强大的解决方案的地方:
iris$Species <- reorder(iris$Species, iris$Sepal.Width, FUN=mean)
boxplot(Sepal.Width ~ Species, iris)
这里发生的事情是 iris$Sepal.Width
对应于 iris$Species
中每个级别的值都应用了函数 mean
它们和结果作为 scores
属性附加到该因素:
> attr(iris$Species, 'scores')
setosa versicolor virginica
3.428 2.770 2.974
然后使用这些分数对因素中的水平进行排名(按升序排列),并按该顺序分配它们:
> levels(iris$Species)
[1] "versicolor" "virginica" "setosa"
请注意,这不会更改数据框中任何数据 的顺序,只会更改因子中使用的代码的顺序。 FUN
参数使 reorder
函数非常通用,因此可以按最小值或最大值或您想要对分组数据计算的任何函数进行排序。
总的来说,我认为关键是 reorder
函数中的第二个参数,它被认为是一个期望的顺序,而是用于输入与每个条目相关的权重或值因素。
关于r - `reorder()` 中 `R` 背后的逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53423360/
我正在寻找匹配 /(?=\W)(gimme)(?=\W)/gi 或类似的东西。 \W 应该是零宽度字符来包围我的实际匹配项。 也许有一些背景。我想用添加的文字填充替换某些单词(总是 \w+),但前提是
如何在不使用 Intent 连接到 VPN 服务的情况下以编程方式检测流量是否正在通过 VPN。有系统调用吗? 最佳答案 这个有效: private boolean checkVPN() {
我是一名优秀的程序员,十分优秀!