我试图使用data.table的..函数表示法,这是我到目前为止的代码:
set.seed(42)
dt <- data.table(
x = rnorm(10),
y = runif(10)
)
test_func <- function(data, var, var2) {
vars <- c(var, var2)
data[, ..vars]
}
test_func(dt, 'x', 'y') # this works
test_func2 <- function(data, var, var2) {
data[, ..var]
}
test_func2(dt, 'x', 'y') # this works too
test_func3 <- function(data, var, var2) {
data[, sum(..var)]
}
test_func3(dt, 'x', 'y')
# this does not work
# Error in eval(jsub, SDenv, parent.frame()) : object '..var' not found
Run Code Online (Sandbox Code Playgroud)
一旦它包含在另一个函数中,它似乎data.table无法识别.我知道我可以用它来实现结果,但我想知道我在大多数情况下都在使用最佳实践. …
我是ggplot2的新手,在Excel中重现类似的图表一直很有挑战性.我几乎得到它的工作,但现在我需要找出一种方法来使geom_point/line的图例键(图例中的第3项)不显示它周围的框.
注意:我知道使用有类似问题的答案+ theme(legend.key = element_blank()),但它对图例没有影响.我怀疑它与scale_*_manual代码中的内容有关.任何其他解决方案将真正感激!
test <- data.frame(
group = 1:5,
cnt = rep(600, 5),
pct_cnt = rep(0.2, 5),
prem = c(12000000, 9800000, 8700000, 11000000, 3500000),
pct_prem = c(0.266666667, 0.217777778, 0.193333333, 0.244444444,
0.077777778),
relativity = c(1.5, 1.2, 1, 0.8, 0.4)
)
theme_set(theme_minimal())
normalizer <- round(max(test$relativity) / max(test$pct_prem), 0)
ggplot(test, aes(x = group)) +
geom_bar(aes(y = pct_prem, fill = 'prem', color = 'prem'), stat = 'identity', position = position_nudge(x = -0.1), width = 0.2) +
geom_bar(aes(y …Run Code Online (Sandbox Code Playgroud)