我喜欢将 data.frame 的一些列组合成一个新列,比如
dat <- data.frame(
color = sample(c("r","y","b"), 10, replace = TRUE),
year = sample(2011:2014, 10, replace = TRUE),
type = sample(c("early","mid","late"), 10, replace = TRUE))
dat$tot1 <- paste(dat$color, dat$year, dat$type)
那行得通,但是我如何根据列名来做到这一点?
cnames <- c("color","year","type")
dat$tot2 <- do.call(paste, list(cnames,collapse=""))
当然,这仅提供了一个带有“coloryeartype”条目的列,与dat$tot1
. 你会怎么做?do.call(paste, list(get(cnames),collapse=""))
报告错误Error in get(cnames) : object 'color' not found
谢谢克里斯托夫