Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用dplyr计算嵌套数据帧中的行数_R_Dplyr_Split Apply Combine - Fatal编程技术网

如何使用dplyr计算嵌套数据帧中的行数

如何使用dplyr计算嵌套数据帧中的行数,r,dplyr,split-apply-combine,R,Dplyr,Split Apply Combine,下面是一个愚蠢的数据帧示例: df <- data_frame(A = c(rep(1, 5), rep(2, 4)), B = 1:9) %>% group_by(A) %>% nest() 出了什么问题?使用dplyr: df %>% group_by(A) %>% mutate(N = nrow(data.frame(data))) A数据N 1 1 5 2 2 4 你可以做: df %>%

下面是一个愚蠢的数据帧示例:

df <- data_frame(A = c(rep(1, 5), rep(2, 4)), B = 1:9) %>% 
  group_by(A) %>% 
  nest()

出了什么问题?

使用
dplyr

df %>% 
  group_by(A) %>%
  mutate(N = nrow(data.frame(data)))
A数据N
1     1      5
2     2      4
你可以做:

df %>%
  rowwise() %>%
  mutate(N = nrow(data))
其中:

#Source: local data frame [2 x 3]
#Groups: <by row>
#
## A tibble: 2 × 3
#      A             data     N
#  <dbl>           <list> <int>
#1     1 <tibble [5 × 1]>     5
#2     2 <tibble [4 × 1]>     4
#来源:本地数据帧[2 x 3]
#小组:
#
##一个tibble:2×3
#数据
#              
#1     1      5
#2     2      4

结合
dplyr
purrr
您可以:

df %>%
  rowwise() %>%
  mutate(N = nrow(data))
库(tidyverse)
df%>%
变异(n=map_dbl(数据,nrow))
#>#A tible:2×3
#>数据
#>               
#> 1     1      5
#> 2     2      4

我喜欢这种方法,因为您保持在通常的工作流程中,在mutate中创建一个新列,但利用
map.*
-系列,因为您需要对列表进行操作。

尝试以下方法:
df$nRow与我上面提到的
apply
系列相比,
dplyr
解决方案中非常好的解决方案。我很喜欢这个。
df %>%
  rowwise() %>%
  mutate(N = nrow(data))
#Source: local data frame [2 x 3]
#Groups: <by row>
#
## A tibble: 2 × 3
#      A             data     N
#  <dbl>           <list> <int>
#1     1 <tibble [5 × 1]>     5
#2     2 <tibble [4 × 1]>     4