如何解决错误:套用功能时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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。