如何从R中的多个列中获取计数?
我有一个包含三列的数据框:State1、State2、State3。是否有一种方法可以使用所有三列(最好使用dplyr,而不使用显式循环)获取一个数据帧中每个状态的计数?我只知道如何做一个专栏:如何从R中的多个列中获取计数?,r,dplyr,R,Dplyr,我有一个包含三列的数据框:State1、State2、State3。是否有一种方法可以使用所有三列(最好使用dplyr,而不使用显式循环)获取一个数据帧中每个状态的计数?我只知道如何做一个专栏: df %>% group_by(State1) %>% summarise(n=sum(!is.na(State1))) 你很接近。您应该先将所有列收集到一列中,然后按分组和汇总 df %>% gather("key", "value", state1, state2, st
df %>% group_by(State1) %>% summarise(n=sum(!is.na(State1)))
你很接近。您应该先将所有列
收集到一列中,然后按分组和汇总
df %>%
gather("key", "value", state1, state2, state3) %>%
group_by(value) %>%
summarise(n=n())
注意:如果有NA条目,这也会计算NA条目的数量。是按“State1”还是按单个分组进行分组。如果是后者,则可能需要一个循环。请提供一个小的可重复的例子和预期的OOUTPUT我的上述尝试是按状态1分组的,但我不会说解决方案一定要这样分组。但是,所有三列(50个州+地区)的因子都是相同的。类似于gather(df)%%>%groupby(key,val)%%>%summary(n=sum(!is.na(val))
?\n如果您明确想要非na sum,您应该遵循@akruns建议。我的方法应该只添加一个额外的行来计算NA条目,这可能是helpful@AjjitNarayanan我认为最好在你的帖子中提及,因为基于代码,这个问题令人困惑