我试图使用arrange_()字符串输入,并在其中一列中按降序排列.
library(dplyr) # R version 3.3.0 (2016-05-03) , dplyr_0.4.3
# data
set.seed(1)
df1 <- data.frame(grp = factor(c(1,2,1,2,1)),
x = round(runif(5,1,10), 2))
# grp x
# 1 1 3.39
# 2 2 4.35
# 3 1 6.16
# 4 2 9.17
# 5 1 2.82
Run Code Online (Sandbox Code Playgroud)
以下是我需要实现的目标:
df1 %>% arrange(grp, -x)
df1 %>% arrange(grp, desc(x))
# grp x
# 1 1 6.16
# 2 1 3.39
# 3 1 2.82
# 4 2 9.17
# 5 2 4.35
Run Code Online (Sandbox Code Playgroud)
在我的情况下,第二列是一个字符串:
#dynamic …Run Code Online (Sandbox Code Playgroud) 通常我会想要选择子集是函数结果的变量子集.在这个简单的例子中,我首先得到所有与宽度特征有关的变量名
library(dplyr)
library(magrittr)
data(iris)
width.vars <- iris %>%
names %>%
extract(grep(".Width", .))
Run Code Online (Sandbox Code Playgroud)
哪个回报:
>width.vars
[1] "Sepal.Width" "Petal.Width"
Run Code Online (Sandbox Code Playgroud)
能够使用这些返回作为选择列的方式是有用的(虽然我知道它contains()和它的兄弟存在,但是我想要执行许多更复杂的子集,并且这个例子对于这个例子来说是微不足道的.这个例子的目的.
如果我尝试使用此函数作为选择列的方法,则会发生以下情况:
iris %>%
select(Species,
width.vars)
Error: All select() inputs must resolve to integer column positions.
The following do not:
* width.vars
Run Code Online (Sandbox Code Playgroud)
如何使用dplyr::select存储为字符串的变量名称向量?
我试图提供一个包含多个列名的向量,以mutate()使用该dplyr程序包进行调用。以下是可重现的示例:
stackdf <- data.frame(jack = c(1,NA,2,NA,3,NA,4,NA,5,NA),
jill = c(1,2,NA,3,4,NA,5,6,NA,7),
jane = c(1,2,3,4,5,6,NA,NA,NA,NA))
two_names <- c('jack','jill')
one_name <- c('jack')
# jack jill jane
# 1 1 1
# NA 2 2
# 2 NA 3
# NA 3 4
# 3 4 5
# NA NA 6
# 4 5 NA
# NA 6 NA
# 5 NA NA
# NA 7 NA
Run Code Online (Sandbox Code Playgroud)
我能够弄清楚如何使用“一个变量”版本,但不知道如何将其扩展到多个变量?
# the below works as expected, and is an example of the output …Run Code Online (Sandbox Code Playgroud) 我正在尝试data.frame使用降序排列所有变量dplyr。我尝试过关注这篇文章和另一篇文章,但没有运气。
我可以通过使用来完成它sapply(my_data, function(x) sort(x, decreasing = T)),但是我想知道是否有办法dplyr。
谢谢。
预期输出:
## A tibble: 14 x 8
# mean_EDR total_EDR mean_ED total_ED meanEDGE totalEDGE PD SR
# <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
# 1 0.006364422 0.25457688 87.45347 3591.964 4.402291 190.8988 5012.058 45
# 2 0.004558913 0.18287734 85.17115 3585.592 4.334637 182.0548 5006.400 43
# 3 0.004354222 0.18235650 82.18129 3577.188 4.296272 180.4434 4847.001 42
# 4 0.003916397 0.17623788 …Run Code Online (Sandbox Code Playgroud)