为什么dplyr::Tall不读取函数中的变量?
dplyr::Tall比dplyr::count快。为什么tally不读取函数中的alpha变量 对于本例的示例x,请说:为什么dplyr::Tall不读取函数中的变量?,r,dplyr,R,Dplyr,dplyr::Tall比dplyr::count快。为什么tally不读取函数中的alpha变量 对于本例的示例x,请说: x <- data.frame("PrecinctID" = c(101,102,103,104)) tally(x,PrecinctID == 101)[1,1] #[1] 919 findy <- function(y) {tally(x,PrecinctID == y)[1,1]} findy(101) #Error: object 'y
x <- data.frame("PrecinctID" = c(101,102,103,104))
tally(x,PrecinctID == 101)[1,1]
#[1] 919
findy <- function(y) {tally(x,PrecinctID == y)[1,1]}
findy(101)
#Error: object 'y' not found
findy <- function(y) {count(x,PrecinctID == y)[2,2]}
findy(101)
#Source: local data frame [1 x 1]
# n
#1 919
[自我回答:]
我能够解决我自己的问题。Tally只接受tbl数据。所以,无论您使用的是tally还是Summary,都可以通过dplyr管道%>%或运算符将其泵入。一旦这样做,就可以编排嵌入查询的相当复杂的字段。给定x是大型投票者数据库:
tbl_df(x)
Source: local data frame [128,438 x 17] ...
StateVoterID RegistrationNumber LastName FirstName ...
uPID <- sort(unique(x$PrecinctID))
findP <- function(y) {
x %>%
summarise(
Count = sum(PrecinctID == y),
Good = sum(AVReturnStatus == "Good" & PrecinctID == y),
Late = sum(AVReturnChallenge == "Too Late" & PrecinctID == y))
}
u1 <- t(sapply(uPID,findP))
u1 <- cbind(uPID,u1)
head(u1)
uPID Count Good Late
[1,] 101 917 476 4
[2,] 102 630 367 8
[3,] 103 687 482 2
[4,] 104 439 312 1
[5,] 105 414 252 0
[6,] 106 778 422 2
示例不可复制。什么是x和y?x是一个大数据帧。y是函数的参数,在本例中为“101”。您可以使用自己的字段或data.frames。我想知道是否有一个变通方法允许它读取函数中的alpha变量。请阅读以下内容:这是一个问题吗?如果你想自己回答,你应该把答案放在页面下方的框中。