[英]In R, plot a histogram of how many time-points have viable data for each participant
我有一个很大的数据框,我希望能够为所有参与者绘制可行会话数的直方图-用NA以外的任何值表示,以便确定他们是否完成了足够的会话数包括在分析中,以及大多数人得分的会话数是否有明确的分界点。 每个参加者应完成10个研究阶段,但有些人缺少会议,如NA所示。
真实的数据框很大,并且包含我无法显示的参与者数据,但是我在这里重新创建了一个较小的样本版本,其中包含一些重要列,包括参与者ID,他们在每次会话中获得的分数以及会话号。
重新创建数据框的代码:
dat <- cbind(c(rep(1:3,10)), c(rep(c(12, 32, NA, 44, 45, NA, NA, 8, 54, NA, NA, 12, 13, 14, NA),2)), c(rep(1,3), rep(2,3), rep(3,3), rep(4,3), rep(5,3), rep(6,3), rep(7,3), rep(8,3), rep(9,3), rep(10,3)))
colnames(dat) <- c("ID", "score", "session.num")
预先感谢您的帮助。 如果我的问题需要澄清,请告诉我。
如果我正确理解了您的问题,那么您希望获得参与者已完成多少会话的直方图。 为此,您首先需要按ID汇总数据,以查看每个参与者完成了多少可行的会话,然后绘制直方图。
dat <- as.data.frame(dat)
dat.agg <- with(dat[!is.na(dat$score),], # Filter out sessions with NA score
aggregate(session.num, by = list(ID), # Aggregate session by ID
FUN = function(x) length(unique(x))))
names(dat.agg) <- c("ID", "viable")
dat.agg
# ID viable
# 1 6
# 2 8
# 3 4
hist(dat.agg$viable)
hist(dat.agg[dat.agg$viable > 10, "viable"]) # If you only
# care about those with 10 sessions
library(ggplot2) # More options with ggplot
ggplot(dat.agg, aes(viable)) + geom_histogram(binwidth = 1)
这是我在实验室同事的帮助下最终做的事情:
dat_hist <-dat%>%group_by(ID)%>%summary(ViableN = sum(!is.na(score)))#获取可行运行次数
qplot(dat_hist $ ViableN,geom =“ histogram”,xlab =“可行的运行”,ylab =“计数”,main =“可行的运行次数的频率”,binwidth = .5)table(dat_hist $ ViableN)#直方图
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.