r中具有特定列的计算组

r中具有特定列的计算组,r,tidyverse,R,Tidyverse,我的数据是这样的 df1这里有一个选项,使用pivot\u longer将“宽”格式改为“长”格式,并按“group1”索引和“Car”分组,通过汇总获得“时间”的平均值和sd library(dplyr) library(tidyr) df1 %>% pivot_longer(cols = everything(), names_to = c(".value", "group"), names_sep="(?<=[a-z])(?=\\d+)") %>%

我的数据是这样的


df1这里有一个选项,使用
pivot\u longer
将“宽”格式改为“长”格式,并按“group1”索引和“Car”分组,通过
汇总
获得“时间”的
平均值和
sd

library(dplyr)
library(tidyr)
df1 %>% 
  pivot_longer(cols = everything(), names_to = c(".value", "group"),
        names_sep="(?<=[a-z])(?=\\d+)") %>%
  group_by(group, Car) %>% 
  summarise(Mean = mean(Time), SD = sd(Time))
# A tibble: 7 x 4
# Groups:   group [3]
#  group   Car  Mean    SD
#  <chr> <int> <dbl> <dbl>
#1 1        11  10     0  
#2 1        22  40    20  
#3 2        33  50    56.6
#4 2        45  30.5  33.3
#5 3        40  25    21.2
#6 3        88  45    21.2
#7 3        90  60    56.6
库(dplyr)
图书馆(tidyr)
df1%>%
pivot_longer(cols=everything(),name_to=c(“.value”,“group”),

names_sep=“(?这里有一个选项具有
pivot_longer
,其中我们将“宽”格式改为“长”格式,并按“group1”索引和“Car”分组,通过
总结
获得“时间”的
平均值
sd

library(dplyr)
library(tidyr)
df1 %>% 
  pivot_longer(cols = everything(), names_to = c(".value", "group"),
        names_sep="(?<=[a-z])(?=\\d+)") %>%
  group_by(group, Car) %>% 
  summarise(Mean = mean(Time), SD = sd(Time))
# A tibble: 7 x 4
# Groups:   group [3]
#  group   Car  Mean    SD
#  <chr> <int> <dbl> <dbl>
#1 1        11  10     0  
#2 1        22  40    20  
#3 2        33  50    56.6
#4 2        45  30.5  33.3
#5 3        40  25    21.2
#6 3        88  45    21.2
#7 3        90  60    56.6
库(dplyr)
图书馆(tidyr)
df1%>%
pivot_longer(cols=everything(),name_to=c(“.value”,“group”),

names_sep=“(?假设您可以轻松地将数据划分为时间和车辆,那么您可以使用
循环
来完成此操作,假设您将数据划分为您提供的结构

cars <- df1[1:3]
Time <- df1[4:6]

ls <- list()
for(i in 1:ncol(cars)) {
  ls[[i]] <- aggregate(Time[i], by = cars[i], FUN = function(x) c(mean(x), sd(x)))
}

cars假设您可以轻松地将数据划分为时间和车辆,那么您可以使用
循环
实现这一点,假设您将数据划分为您提供的结构

cars <- df1[1:3]
Time <- df1[4:6]

ls <- list()
for(i in 1:ncol(cars)) {
  ls[[i]] <- aggregate(Time[i], by = cars[i], FUN = function(x) c(mean(x), sd(x)))
}

cars您也可以使用软件包
数据。表

library(data.table)
melt(setDT(df1), 
     measure = patterns("Car", "Time"), 
     value.name = c("Car", "Time"), 
     variable.name = "group"
     )[, .(Mean = mean(Time), Sd = sd(Time)), .(group, Car)]

#     group   Car  Mean       Sd
# 1:      1    22  40.0 20.00000
# 2:      1    11  10.0  0.00000
# 3:      2    33  50.0 56.56854
# 4:      2    45  30.5 33.28163
# 5:      3    90  60.0 56.56854
# 6:      3    88  45.0 21.21320
# 7:      3    40  25.0 21.21320

您也可以使用包
数据。表

library(data.table)
melt(setDT(df1), 
     measure = patterns("Car", "Time"), 
     value.name = c("Car", "Time"), 
     variable.name = "group"
     )[, .(Mean = mean(Time), Sd = sd(Time)), .(group, Car)]

#     group   Car  Mean       Sd
# 1:      1    22  40.0 20.00000
# 2:      1    11  10.0  0.00000
# 3:      2    33  50.0 56.56854
# 4:      2    45  30.5 33.28163
# 5:      3    90  60.0 56.56854
# 6:      3    88  45.0 21.21320
# 7:      3    40  25.0 21.21320

@用户202,检查now@user202,现在检查