使用动态列名在dplyr中按自定义顺序排列
我试图根据某个列来安排一个tibble(但是根据一个变量动态设置的名称来设置列) 下面是我目前正在尝试的代码,但出现了一个错误。代码的第二次粘贴工作正常(我在symbol的列名中硬编码,我希望根据变量设置该列名)使用动态列名在dplyr中按自定义顺序排列,r,dplyr,R,Dplyr,我试图根据某个列来安排一个tibble(但是根据一个变量动态设置的名称来设置列) 下面是我目前正在尝试的代码,但出现了一个错误。代码的第二次粘贴工作正常(我在symbol的列名中硬编码,我希望根据变量设置该列名) 库(tidyverse) 组变量您需要rlang:sym将组变量从字符符号转换为符号符号,然后使用将符号作为列对象进行求值: test_tbl %>% arrange(factor(!!rlang::sym(group_var), levels = order_var)
库(tidyverse)
组变量您需要rlang:sym
将组变量
从字符符号
转换为符号符号
,然后使用代码>将符号作为列对象进行求值:
test_tbl %>%
arrange(factor(!!rlang::sym(group_var), levels = order_var), date)
# A tibble: 10,959 x 3
# date symbol value
# <date> <chr> <dbl>
# 1 2000-01-01 test1 0.0519143671
# 2 2000-01-02 test1 -0.0464782439
# 3 2000-01-03 test1 -0.0295441613
# ...
测试\u tbl%>%
排列(因子(!!rlang::sym(组变量),级别=订单变量,日期)
#A tibble:10959 x 3
#日期符号值
#
#1 2000-01-01测试1 0.0519143671
#2 2000-01-02测试1-0.0464782439
#3 2000-01-03测试1-0.0295441613
# ...
您也可以使用基本R中的作为.symbol
test_tbl_final <- test_tbl %>%
dplyr::arrange(factor(!!as.symbol(group_var), levels = order_var), date)
test\u tbl\u final%
dplyr::排列(因子(!!as.symbol(组变量),级别=订单变量,日期)
谢谢,我很喜欢基本的R功能。
test_tbl %>%
arrange(factor(!!rlang::sym(group_var), levels = order_var), date)
# A tibble: 10,959 x 3
# date symbol value
# <date> <chr> <dbl>
# 1 2000-01-01 test1 0.0519143671
# 2 2000-01-02 test1 -0.0464782439
# 3 2000-01-03 test1 -0.0295441613
# ...
test_tbl_final <- test_tbl %>%
dplyr::arrange(factor(!!as.symbol(group_var), levels = order_var), date)