小编tha*_*one的帖子

data.table(R)中的ifelse行为

我有一个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)

r data.table

5
推荐指数
1
解决办法
1222
查看次数

在ggplot2中使用带有分层符号(R)的override.aes()

我最近在这里问了一个问题,这个问题允许我使用可自定义的颜色和厚度为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)

r ggplot2

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

r ×2

data.table ×1

ggplot2 ×1