【发布时间】:2019-05-10 11:18:02
【问题描述】:
首先是一些上下文: 我正在使用一个包含健康相关数据的数据集。它包括治疗前后的问卷分数。但是,一些客户重新出现在数据中以进行进一步处理。我在代码部分提供了数据的模拟示例。
我试图在 dplyr 上提出一个解决方案,因为这是我最熟悉的包,但我没有实现我想要的。
#Example/mock data
ClientNumber<-c("4355", "2231", "8894", "9002", "4355", "2231", "8894", "9002", "4355", "2231")
Pre_Post<-c(1,1,1,1,2,2,2,2,1,1)
QuestionnaireScore<-c(62,76,88,56,22,30, 35,40,70,71)
df<-data.frame(ClientNumber, Pre_Post, QuestionnaireScore)
df$ClientNumber<-as.character(df$ClientNumber)
df$Pre_Post<-as.factor(df$Pre_Post)
View(df)
#tried solution
df2<-df%>%
group_by(ClientNumber)%>%
filter( Pre_Post==1|Pre_Post==2)
#this doesn't work, or needs more code to it
如您所见,前四个客户编号都有治疗前和治疗后的分数。这很好。然而,客户编号 4355 和 2231 再次出现在最后(你可以说他们已经复发并开始了新的治疗)。这两个客户没有治疗后评分。
我只想分析有前后分数的客户,因此我需要过滤已完成治疗的客户,同时排除那些再次出现在数据中的没有治疗后分数的客户。关于我提供的示例,我想包括前 8 个进行分析,同时排除后两个,因为它们没有治疗后分数。
【问题讨论】:
-
您能粘贴您预期的数据应该是什么样子吗?
标签: r dplyr filtering data-manipulation