在R中有变量的向量上有一些列求和的汇总表

在R中有变量的向量上有一些列求和的汇总表,r,variables,vector,summary,R,Variables,Vector,Summary,我有一张这样的桌子: df <- data.frame(week = c("one","one","two","two"), Day = c("day1", "day2","day1","day2"), daily_freq = c(100,110,90,90), city1 = c(20,30,20,30), ci

我有一张这样的桌子:

    df <- data.frame(week = c("one","one","two","two"),
                     Day = c("day1", "day2","day1","day2"),
                     daily_freq = c(100,110,90,90),
                     city1 = c(20,30,20,30),
                     city2 = c(10,20,30,40),
                     city3 = c(30,40,10,10),
                     city4 = c(40,20,30,10))
    week  total_freq city1 city2 city3 city4
    one        210    50    30    70    60
    two        180    50    70    20    40
但因为我有几个城市(超过40个),并且我需要计算几个汇总表,所以我希望有一个包含城市的向量:

      cities <- c("city1","city2","city3","city4")

cities我们可以在
.SDcols
中指定“cities”向量,并在
.SD
上循环以获得

setDT(df)[, lapply(.SD, sum), .SDcols = cities]
#   city1 city2 city3 city4
#1:   105   100    55    65
如果我们还需要“daily_freq”,那么就与“cities”连接起来

setDT(df)[, lapply(.SD, sum), .SDcols = c('daily_freq', cities)]
#    daily_freq city1 city2 city3 city4
#1:        325   105   100    55    65

您可以将
城市指定为
.SDcols
,然后在
.SD
上循环,并获得
总和
setDT(df)[,lappy(.SD,sum),.SDcols=cities]
df[,lappy(.SD[,-1],sum]
但我如何将第一列与每日频率相加?我的第二列是每日频率,我想计算该期间的总频率,如总频率=总和(每日频率)。我怎样才能把它添加到代码中呢?
setDT(df)[,c(freq=sum(daily_-freq),lapply(.SD,sum)),.SDcols=cities]
setDT(df)[,lapply(.SD,sum),.SDcols=c(“daily_-freq”,cities)]
但是当我添加每日_-freq的和时,它不起作用:res但是我如何将第一列与每日频率相加?我的意思是,如何将第二列与每日频率相加:daily_freqIt可以工作,但问题是我有更多的列,我需要在汇总表中计算汇总列,如data_min=min(已创建),以及其他测试列,如men=sum(gender='M')@Student1000。你可以这样做
setDT(df)[,c(list(min_freq=min(daily_freq)),lapply(.SD,sum)),.SDcols=城市]
setDT(df)[, lapply(.SD, sum), .SDcols = cities]
#   city1 city2 city3 city4
#1:   105   100    55    65
setDT(df)[, lapply(.SD, sum), .SDcols = c('daily_freq', cities)]
#    daily_freq city1 city2 city3 city4
#1:        325   105   100    55    65