【发布时间】:2018-10-26 23:36:27
【问题描述】:
假设我有以下数据:
A <- c(4,4,4,4,4)
B <- c(1,2,3,4,4)
C <- c(1,2,4,4,4)
D <- c(3,2,4,1,4)
filt <- c(1,1,10,8,10)
data <- as.data.frame(rbind(A,B,C,D,filt))
data <- t(data)
data <- as.data.frame(data)
> data
A B C d filt
V1 4 1 1 3 1
V2 4 2 2 2 1
V3 4 3 4 4 10
V4 4 4 4 1 8
V5 4 4 4 4 10
我想在过滤后计算每个变量出现 1、2、3 和 4 的次数。在我尝试在下面实现这一点时,我得到错误:长度(行)== 1 不是 TRUE。
data %>%
dplyr::filter(filt ==1) %>%
plyr::summarize(A_count = count(A),
B_count = count(B))
我收到错误 - 这是因为我的某些列不包含所有值 1-4。有没有办法指定它应该寻找什么&如果没有找到则给出 0 值?如果可能,我不确定如何执行此操作,或者是否有其他解决方法。
非常感谢任何帮助!!!
【问题讨论】:
-
引发错误的不是
data %>% dplyr::filter(filt ==1)部分,因此您可以摆脱它并简化问题,使其更切中要害(更小的样本数据、单个函数调用等) )。这将增加您获得答案的机会。