我正在尝试根据某一列动态设置的变量名对tibble进行排序。
以下是目前我尝试的代码,但是出现了错误。第二个代码块可以正常工作(在其中我已经硬编码了我想要基于变量设置的符号列名)。
library(tidyverse)
group_var <- "symbol"
date_seq <- seq(as.Date("2000-01-01"), as.Date("2009-12-31"), by = "days")
test_tbl <- tibble::tibble("date" = rep(date_seq, 3),
"symbol" = rep(c("test3", "test1", "test2"), each = length(date_seq)),
"value" = c(rnorm(length(date_seq), sd = 0.05),
rnorm(length(date_seq), sd = 0.05),
rnorm(length(date_seq), sd = 0.05)))
order_var <- c("test1", "test2", "test3")
test_tbl_final <- test_tbl %>%
dplyr::arrange(factor(!!group_var, levels = order_var), date)
以下是能够工作并展示我想要实现的代码:
library(tidyverse)
date_seq <- seq(as.Date("2000-01-01"), as.Date("2009-12-31"), by = "days")
test_tbl <- tibble::tibble("date" = rep(date_seq, 3),
"symbol" = rep(c("test3", "test1", "test2"), each = length(date_seq)),
"value" = c(rnorm(length(date_seq), sd = 0.05),
rnorm(length(date_seq), sd = 0.05),
rnorm(length(date_seq), sd = 0.05)))
order_var <- c("test1", "test2", "test3")
test_tbl_final <- test_tbl %>%
dplyr::arrange(factor(symbol, levels = order_var), date)