我从R开始,我仍然在寻找语法 . 我希望得到一个比例变量的频率,其值为0到10和NA .
Id <- c(1,2,3,4,5)
ClassA <- c(1,NA,3,1,1)
ClassB <- c(2,1,1,3,3)
R <- c(5,5,7,NA,9)
S <- c(3,7,NA,9,5)
df <- data.frame(Id,ClassA,ClassB,R,S)
library(plyr)
count(df,'R')
我得到了结果
R freq
1 5 2
2 7 1
3 9 1
4 NA 1
我正在寻找结果
R freq
1 0 0
2 1 0
3 2 0
4 3 0
5 4 0
6 5 2
7 6 0
8 7 1
9 8 0
10 9 1
11 10 0
12 NA 1
如果我有向量显示可能的结果
RAnswers <- c(0,1,2,3,4,5,6,7,8,9,10,NA)
如何将其与数据集一起应用以获得上述结果?
2 回答
使用包dplyr可以轻松完成这类任务 . 为了保持R的未使用值,您必须将R定义为因子并使用tidyr的完整函数
这是围绕
table()
,match()
和replace()
构建的基本R解决方案:Edit: 弗兰克有一个更好的答案,这里是你如何在一个因子上使用
table()
来获得所需的输出: