我花了大约3个小时试图解决这个问题。我试图获取每个id的实例计数。我在“by”函数中创建了自己的函数,我测试了函数,它为我得到了所有id组合的正确计数...但是当我运行下面的代码时它返回“NULL”:
使其成为一个更具应用性的概念..如果我想知道每个患者在我的工厂有多少“好”+“实验室”访问该怎么办? :
dataset #<- this is the name of my dataset; each row is a visit.
id #<- this is the unique ID for each patient
event #<- this variable tells what type of visit it was
event == 1 #this is a 'well' visit
event == 2 #this is a lab visit
event == 3 #this is a sick visit
event == 4 #this is an urgent care visit
by(dataset[,"event"], dataset[,"id"], function(dataset) {
nrow(subset(dataset["event"], (dataset["event"]==1 | dataset["event"]==2)))})
实际上,当我分开这个功能时
nrow(subset(dataset["event"], (dataset["event"]==1 | dataset["event"]==2)))
来自by
声明,我得到了所有患者的这些类型的访问总数。当我运行包含by
语句的代码时,我得到id
的分隔,但是NULL值。我很确定我的function()
代码中缺少这个问题...
提前感谢您的帮助!
答案 0 :(得分:1)
table(subset(dataset, event %in% c(1, 2))$id)