错误:套用功能时x栏不明

问题描述

我正在尝试编写如下函数:

someKey

我希望在x == 1时获得x的数量以及百分比

有人可以指出我错了吗?谢谢!

当我应用该功能时,

Q5base_func<- function(x){
  a<-subQ5 %>% group_by(Q1,x) %>% summarise(n = n())
  a <- a[complete.cases(a),] %>% filter(x == 1)
  sum <- sum(a$n)
  a_percent<- a%>%
    mutate(freq= (n/sum)*100)
}

错误回溯:

Q5base_func(subQ5$Q4)

样本数据集是这样的:

 Error: Column `x` is unknown 
13.
stop(structure(list(message = "Column `x` is unknown",call = NULL,cppstack = NULL),class = c("Rcpp::exception","C++Error","error","condition"))) 
12.
grouped_df_impl(data,unname(vars),drop) 
11.
grouped_df(groups$data,groups$group_names,.drop) 
10.
group_by.data.frame(.,Q1,x) 
9.
group_by(.,x) 
8.
function_list[[i]](value) 
7.
freduce(value,`_function_list`) 
6.
`_fseq`(`_lhs`) 
5.
eval(quote(`_fseq`(`_lhs`)),env,env) 
4.
eval(quote(`_fseq`(`_lhs`)),env) 
3.
withVisible(eval(quote(`_fseq`(`_lhs`)),env)) 
2.
subQ5 %>% group_by(Q1,x) %>% summarise(n = n()) 
1.
Q5base_func(subQ5$Q11) 

解决方法

您想要实现的目标可能只是一个班轮。

subQ5 <- structure(list(Q1 = c(1L,2L,3L,3L),Qx = c(1L,0L,1L,1L)),class = "data.frame",row.names = c(NA,-6L))

library(dplyr)

Q5base_func <- function(df,x) {
   df %>% filter(complete.cases(.))  %>% 
   group_by(Q1) %>% 
 #  mutate(sumx=sum(Qx==x),percent=sum(Qx==x)/n())     #add columns and keeps all of the data
    summarise(sumx=sum(Qx==x),percent=sum(Qx==x)/n())  #summarize the results
}

x<-1
answer <-Q5base_func(subQ5,x)
answer

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...