我正在寻找一种在
例如,在
为了在`data.table`中获得同样的结果,我会像这样做,这似乎不是常规方法:
data.table
中可读的替代plyr::mapvalues
的方法。例如,在
plyr::mapvalues
中,如果我想要将mtcars
中的carb
值更改为type1, type2, type3
,我会像这样做:library(tidyverse)
mtcars %>%
mutate(carb = plyr::mapvalues(
carb,
from = c("1", "2", "3", "4", "6", "8"),
to = c("type1", "type1", "type2", "type2", "type3", "type3")))
为了在`data.table`中获得同样的结果,我会像这样做,这似乎不是常规方法:
library(data.table)
dt <- data.table(mtcars)
dt$carb <- as.character(dt$carb)
dt[which(carb %in% c("1", "2")),
carb := "type1"]
dt[which(carb %in% c("3", "4")),
carb := "type2"]
dt[which(carb %in% c("6", "8")),
carb := "type3"]
是否可以在一个条件 (dt[...]
) 中更改所有的值?
plyr::mapvalues
在data.table
中也是同样的工作方式。dt[, carb2 := plyr::mapvalues( carb, from = c("1", "2", "3", "4", "6", "8"), to = c("type1", "type1", "type2", "type2", "type3", "type3"))]
你需要一个学习目的的替代方案吗? - Ronak Shahdata.table
环境中。然而,我从未考虑过在data.table
内部使用plyr::mapvalues
,只有在使用管道时才会这样做。我想知道它在性能方面如何运作。 - DJV