R 按组计算因子的出现次数
我正在处理一些dplyr问题。我想创建一个新的变量,即因子水平的频率,但我想按组进行。以下是我的数据摘录:R 按组计算因子的出现次数,r,dplyr,R,Dplyr,我正在处理一些dplyr问题。我想创建一个新的变量,即因子水平的频率,但我想按组进行。以下是我的数据摘录: head(Dataset) Code_PR Code_SP Status_SP PR1 SP1 0 PR1 SP2 0 PR1 SP3 1 PR2 SP1 0 PR2 SP2 1 我希望得到这样的结果: Code_PR Count
head(Dataset)
Code_PR Code_SP Status_SP
PR1 SP1 0
PR1 SP2 0
PR1 SP3 1
PR2 SP1 0
PR2 SP2 1
我希望得到这样的结果:
Code_PR Count Ratio
PR1 3 1/3
PR2 2 1/2
我尝试了以下代码,并对其进行了修改,但始终出现相同的错误:
RatioAb <- Database_V2 %>%
group_by(CodePR, StatutSP) %>%
summarize(
n=n(),
Ratio =count(StatutSP, '1')/count(StatutSP)
)
Error in summarise_impl(.data, dots) :
Evaluation error:
no applicable method for 'group_by_' applied to an object of class
"logical"
RatioAb%
分组依据(CodePR,TSP)%>%
总结(
n=n(),
比率=计数(StatutSP,'1')/计数(StatutSP)
)
总结内容中出错(.data,dots):
评估错误:
没有适用于类的对象的“分组方式”的方法
“逻辑的”
我如何解决这个问题?df%>%
df %>%
group_by(Code_PR) %>%
summarise(Count = n()
, Ratio = mean(Status_SP))
## A tibble: 2 x 3
# Code_PR Count Ratio
# <chr> <int> <dbl>
# 1 PR1 3 0.333
# 2 PR2 2 0.500
分组人(代码公共关系)%>%
总结(计数=n()
,比率=平均值(状态(SP))
##一个tibble:2x3
#代码计数比率
#
#1 PR1 3 0.333
#2 PR2 0.500
谢谢!但是我仍然会遇到这样的错误“错误:不应该直接调用此函数”错误指的是哪个函数?你的R环境一定有问题。没错,我重新启动了我的R会话,但现在我的平均值只有NA:。默认值(stateTSP):参数不是数字或逻辑的:返回NA'哦,是的,你不能取非数字(或逻辑)向量的平均值。在取平均值之前,先找出一种方法使其数值化。如果数字被编码为一个因子,则需要在其上使用as.numeric(as.character(x))
,而不仅仅是as.numeric
Dataset %>%
group_by(Code_PR) %>%
summarise(Count = n(), Ratio = paste0(sum(Status_SP),"/",n()))