R dplyr group_by 主题似乎使用整个数据框而不是主题
R dplyr group_by subject appears to use entire dataframe instead of subject
背景
我正在使用 R 中重复测量临床试验的大型数据集,我想对每个主题进行一些数据操作。这可以是提取每个主题的 x 列中的最大值或每个主题的 y 列的平均值。
问题
我喜欢使用 dplyr 包和管道,这让我想到了 group_by 函数。但是当我尝试应用它时,我要提取的数据似乎并没有像预期的那样按主题分组,而是基于整个数据集提取数据。
代码
这是我目前所做的:
data <- read.csv(file="group_by_question.csv", header=TRUE, sep=",")
library(dplyr)
library(plyr)
data <- tbl_df(data)
test <- data %>%
filter(!is.na(wght)) %>%
dplyr::group_by(subject_id) %>%
mutate(maxwght=max(wght),meanwght=mean(wght)) %>%
ungroup()
测试数据帧样本:
在此处查找我的数据集的 .csv 样本:
https://drive.google.com/file/d/1wGkSQyJXqSswThiNsqC26qaP7d3catyX/view?usp=sharing
这是你想要的吗?在下面的示例中,输出按主题 ID 显示 maxwght 列的最大值。您可以将 max() 替换为 mean,例如,如果您需要每个受试者 ID 的 maxwght 的平均值。
library(dplyr)
data <- read.csv(file="group_by_question.csv", header=TRUE, sep=",")
test <- data %>%
filter(!is.na(wght)) %>%
mutate(maxwght=max(wght),meanwght=mean(wght)) %>%
group_by(subject_id) %>%
summarise(value = max(maxwght)) %>%
ungroup()
背景 我正在使用 R 中重复测量临床试验的大型数据集,我想对每个主题进行一些数据操作。这可以是提取每个主题的 x 列中的最大值或每个主题的 y 列的平均值。
问题
我喜欢使用 dplyr 包和管道,这让我想到了 group_by 函数。但是当我尝试应用它时,我要提取的数据似乎并没有像预期的那样按主题分组,而是基于整个数据集提取数据。
代码
这是我目前所做的:
data <- read.csv(file="group_by_question.csv", header=TRUE, sep=",")
library(dplyr)
library(plyr)
data <- tbl_df(data)
test <- data %>%
filter(!is.na(wght)) %>%
dplyr::group_by(subject_id) %>%
mutate(maxwght=max(wght),meanwght=mean(wght)) %>%
ungroup()
测试数据帧样本:
在此处查找我的数据集的 .csv 样本: https://drive.google.com/file/d/1wGkSQyJXqSswThiNsqC26qaP7d3catyX/view?usp=sharing
这是你想要的吗?在下面的示例中,输出按主题 ID 显示 maxwght 列的最大值。您可以将 max() 替换为 mean,例如,如果您需要每个受试者 ID 的 maxwght 的平均值。
library(dplyr)
data <- read.csv(file="group_by_question.csv", header=TRUE, sep=",")
test <- data %>%
filter(!is.na(wght)) %>%
mutate(maxwght=max(wght),meanwght=mean(wght)) %>%
group_by(subject_id) %>%
summarise(value = max(maxwght)) %>%
ungroup()