我有一个data.table充满了一些消费产品.我已经创造了一些区别的产品作为'low','high'或'unknown'质量.数据是时间序列,我有兴趣平滑数据中的一些季节性.如果产品的原始分类(由我用来确定质量的算法生成的分类)是'low'X期的质量,但其原始分类是'high'X-1期间的质量,我将该产品重新分类'high'为期间X的质量.过程是在某种产品组的区别内完成的.
要做到这一点,我有类似以下内容:
require(data.table)
# lag takes a column and lags it by one period,
# padding with NA
lag <- function(var) {
lagged <- c(NA,
var[1:(length(var)-1)])
return(lagged)
}
set.seed(120)
foo <- data.table(group = c('A', rep(c('B', 'C', 'D'), 5)),
period = c(1:16),
quality = c('unknown', sample(c('high', 'low', 'unknown'), 15, replace = TRUE)))
foo[, quality_lag := lag(quality), by = group]
foo[, quality_1 := ifelse(quality == 'low' & quality_lag == 'high', …Run Code Online (Sandbox Code Playgroud) 我最近在这里问了一个问题,这个问题允许我使用可自定义的颜色和厚度为geom_point()s 添加边框ggplot2.不可否认,这有点像黑客,我现在遇到了一些麻烦,可能是因为这个原因造成的.边框是通过分层两个geom_point()s 生成的,其中一个是我想要的边框的颜色,它比geom_point()提供"填充" 的边框略大.这是一个可重复的例子:
require('ggplot2')
values <- rnorm(n = 10, mean = 1, sd = 0.5) + c(1:10)
df <- data.frame(id = rep(c('hq', 'lq'), each = 5),
values = values,
period = rep(c(1:5), 2))
plot <-
ggplot(df, aes(x = period,
y = values,
group = id,
shape = id,
color = id)) +
geom_line(color = 'gray40') +
geom_point(color = 'gray24',
size = 4) +
geom_point(size = 3) + …Run Code Online (Sandbox Code Playgroud)