【发布时间】:2017-01-11 09:48:54
【问题描述】:
我正在尝试如下使用 dplyr 计算,然后在可以更改列名称和数据集名称的函数中调用它。代码如下:
sample_table <- function(byvar = TRUE, dataset = TRUE) {
tcount <-
df2 %>% group_by(.dots = byvar) %>% tally() %>% arrange(byvar) %>% rename(tcount = n) %>%
left_join(
select(
dataset %>% group_by(.dots = byvar) %>% tally() %>% arrange(byvar) %>% rename(scount = n), byvar, scount
), by = c("byvar")
) %>%
mutate_each(funs(replace(., is.na(.), 0)),-byvar %>% mutate(
tperc = round(tcount / rcount, digits = 2), sperc = round(scount / samplesize, digits = 2),
absdiff = abs(sperc - tperc)
) %>%
select(byvar, tcount, tperc, scount, sperc, absdiff)
return(tcount)
}
category_Sample1 <- sample_table(byvar = "category", dataset = Sample1)
我的函数名称是 sample_table。 错误信息如下:-
Error: All select() inputs must resolve to integer column positions.
The following do not:
* byvar
我知道这是一个重复的问题,我浏览了以下链接:
我不确定我哪里出错了。 rcount 是 df2 中的行数,samplesize 是“数据集”数据框中的行数。我必须为另一个具有三个不同“数据集”名称的变量计算相同的东西。
【问题讨论】: