我有一个表dtTrain,它有很多列。我试图在每个上执行4个聚合列,[Min,Max,sd,mean]。 为此,我正在运行
行subTrain <- dtTrain[,c(min = lapply(.SD, min),
max = lapply(.SD, max),
sd = lapply(.SD, sd),
mean = lapply(.SD, mean)), by=TrialID]
我遇到的问题是聚合正在运行但是列标题是重复的(即column1在subTrain表中生成了四次)。
我更喜欢[column1.min,...,column1.max...,column1.sd, ...column1.mean,...]
或实际上任何列标签。
答案 0 :(得分:1)
我们可以将setnames
与rep
一起使用来更改列名
res <- dtTrain[, c(lapply(.SD, min),
lapply(.SD, max),
lapply(.SD, sd),
lapply(.SD, mean)), by=TrialID]
nm1 <- setdiff(names(dtTrain), 'TrialID')
setnames(res, 2:ncol(res), paste(nm1, rep(c('min', 'max', 'sd', 'mean'),
each = length(nm1)), sep="."))
答案 1 :(得分:0)
可以使用names()
函数或colnames()
函数
> names(Result_dataframe) <- c("Min","Max","sd","Mean")
# OR
> colnames(Result_dataframe) <- c("Min","Max","sd","Mean")