有一个像这样的数据框
other=data.frame(name=c("a","b","a","c","d"),result=c("Y","N","Y","Y","N"))
如何在 tidyr 或其他函数中使用扩展函数来获取结果 Y 或 N 的计数作为列标题,如下所示
name Y N
a 2 0
b 0 1
Thanks
以下是许多方法中的几种:
1)带库dplyr
,您可以简单地将事物分组并计入所需的格式:
library(dplyr)
other %>% group_by(name) %>% summarise(N = sum(result == 'N'), Y = sum(result == 'Y'))
Source: local data frame [4 x 3]
name N Y
<fctr> <int> <int>
1 a 0 2
2 b 1 0
3 c 0 1
4 d 1 0
2)您可以组合使用table
and tidyr
传播如下:
library(tidyr)
spread(as.data.frame(table(other)), result, Freq)
name N Y
1 a 0 2
2 b 1 0
3 c 0 1
4 d 1 0
3)您可以组合使用dplyr
and tidyr
执行如下操作:
library(dplyr)
library(tidyr)
spread(count(other, name, result), result, n, fill = 0)
Source: local data frame [4 x 3]
Groups: name [4]
name N Y
<fctr> <dbl> <dbl>
1 a 0 2
2 b 1 0
3 c 0 1
4 d 1 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)