R 将不同的值与系数级别相加或相乘

R 将不同的值与系数级别相加或相乘,r,r-factor,R,R Factor,有没有比下面更聪明的方法按因子级别对数据帧列执行简单的算术运算 data <- runif(100,0,1) df <- data.frame(x = data, class = cut(data, breaks = c(0,0.5,1), labels = c("low", "high"))) df$x2 <- ifelse(df$class == "high", df$x - 1, df$x + 1) data让我们利用因子的内部整数表示

有没有比下面更聪明的方法按因子级别对数据帧列执行简单的算术运算

data <- runif(100,0,1)
df <- data.frame(x = data,
                 class = cut(data, breaks = c(0,0.5,1), labels = c("low", "high")))
df$x2 <- ifelse(df$class == "high", df$x - 1, df$x + 1)

data让我们利用因子的内部整数表示:

df$x2 <- with(df, c(1, -1)[class] + x)

df$x2让我们利用因子的内部整数表示:

df$x2 <- with(df, c(1, -1)[class] + x)

df$x2不太清楚你想要什么不太清楚你想要什么谢谢,我以后会尽量避免这样命名变量,反正只是为了MWE。这似乎是可行的,也适用于几个标签,例如三个级别和使用(df,c(1,0,1)[class]+x)酷我不知道你可以基于因子库的内部整数表示进行子集,我以后会尽量避免这样命名变量,反正这只适用于MWE。这似乎可行,也适用于几个标签,例如,三个级别和使用(df,c(1,0,1)[class]+x)Cool我不知道可以基于因子的内部整数表示进行子集