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,现在检查