我有一个家庭作业问题:“针对每个年龄段,找到30天后再次入院的患者百分比,并在条形图中显示结果。”
我运行了以下代码,并收到“错误:n()仅应在数据上下文中调用”
cont_table_4<-diabetic_data%>%
select(age, readmitted)%>%
filter(readmitted==">30")%>%
group_by(age)%>%
summarize(count=n())%>%
arrange(desc(count()))
我使用了几乎完全相同的格式来回答一个问题:“找出哪个子专业的再入院率最高。然后按种族打印该子专业的细分。”而且效果很好。我通过电子邮件向我的讲师发送了代码和错误的屏幕截图,她说问题出在count()函数调用上,即使错误涉及n()。我真的不知道该怎么办。我已经加载了dplyr和plyr,卸载了它们中的每一个,然后仅对其中之一进行了重试,并且得到了相同的错误消息。我已经查询了许多有关此错误的问答,但找不到我想要的东西。我是一名刚开始学习R的学生,感谢您的帮助!
答案 0 :(得分:2)
问题将是do.call(rbind,lapply(Tables_recent,function(x){x<-as.data.frame(x); if(length(x)>1)x}))
作为函数,而不是最后一行之前创建的'count'列
do.call(rbind,Filter(function(x)length(x)>1,lapply(Tables_recent,as.data.frame)))