plyr 汇总计数错误行长度
plyr summarize count error row length
假设我有以下数据:
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 值?如果可能,我不确定该怎么做,或者是否有其他解决方法。
非常感谢任何帮助!!!
这有点奇怪,我没有使用经典 plyr
,但我认为这大致就是您要查找的内容。我删除了过滤列,filt
因为没有得到它的计数:
library(dplyr)
data %>%
filter(filt == 1) %>%
select(-filt) %>%
purrr::map_df(function(a_column){
purrr::map_int(1:4, function(num) sum(a_column == num))
})
# A tibble: 4 x 4
A B C D
<int> <int> <int> <int>
1 0 1 1 0
2 0 1 1 1
3 0 0 0 1
4 2 0 0 0
假设我有以下数据:
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 值?如果可能,我不确定该怎么做,或者是否有其他解决方法。
非常感谢任何帮助!!!
这有点奇怪,我没有使用经典 plyr
,但我认为这大致就是您要查找的内容。我删除了过滤列,filt
因为没有得到它的计数:
library(dplyr)
data %>%
filter(filt == 1) %>%
select(-filt) %>%
purrr::map_df(function(a_column){
purrr::map_int(1:4, function(num) sum(a_column == num))
})
# A tibble: 4 x 4
A B C D
<int> <int> <int> <int>
1 0 1 1 0
2 0 1 1 1
3 0 0 0 1
4 2 0 0 0