将具有多列的多行聚合为具有相同列的一行,并在R中连接数据

Aggregate multiple rows with multiple columns into one row with the same columns and concatenated data in R

我已经预先计算了一些均值和标准差数据来创建一个两行数据框。如何将该数据聚合到具有相同列的一行中,将数据连接成字符串,所有这些都遵循相同的格式?

这是我的数据

功能 t1 t2 t3
平均值 52 99 35
标准差 6 18 2

这是我想要的结果:

功能 t1 t2 t3
平均值(标准差) 52(6) 99(18) 35(2)

我查看了 聚合应用 但不确定如何实现。

下面是生成上述代码的代码:

df <- data.frame(funct=c("Mean","sd"),
                 t1=c(52,6),
                 t2=c(99,18),
                 t3=c(35,2))

result <- data.frame(funct="Mean(sd)",
                     t1="52(6)",
                     t2="99(18)",
                     t3="35(2)")

我们可以使用sprintf

data.frame(setNames(as.list(sprintf('%s(%s)', df[1,], df[2,])), names(df)))

-输出

  funct    t1     t2    t3
1 Mean(sd) 52(6) 99(18) 35(2)

这个有用吗:

t(apply(df, 2, function(x) paste(x[1], '(',x[2],')', sep = ''))) %>% as.data.frame
     funct     t1     t2     t3
1 Mean(sd) 52( 6) 99(18) 35( 2)