首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法与`group_by()`和‘`fill()’结合使用tidyselect ` and ()‘

无法与`group_by()`和‘`fill()’结合使用tidyselect ` and ()‘
EN

Stack Overflow用户
提问于 2019-10-24 13:25:20
回答 1查看 360关注 0票数 2
代码语言:javascript
复制
library(tidyverse)
df <- tibble(x1 = c("A", "A", "A", "B", "B", "B"),
             x2 = c(NA, 8, NA, NA, NA, 5),
             x3 = c(3, 6, 5, 9, 1, 9))
#> # A tibble: 6 x 3
#>   x1       x2    x3
#>   <chr> <dbl> <dbl>
#> 1 A        NA     3
#> 2 A         8    NA
#> 3 A        NA     5
#> 4 B        NA     9
#> 5 B        NA     1
#> 6 B         5     9

我的组'A‘和'B’显示在列x1。我需要x2x3列中的'NA‘值,以便仅从同一组中的值中按updown方向填充。这很简单,下面是代码:

代码语言:javascript
复制
df %>% group_by(x1) %>% fill(c(x2, x3), .direction = "updown")
#> # A tibble: 6 x 3
#>   x1       x2    x3
#>   <chr> <dbl> <dbl>
#> 1 A         8     3
#> 2 A         8     5
#> 3 A         8     5
#> 4 B         5     9
#> 5 B         5     1
#> 6 B         5     9

我的实际问题是,我的数据框架不只是通过x3包含列x3。它更像x1通过x100。列名是随机的,没有逻辑顺序。为了省去输入所有~100列的麻烦,我尝试了下面所示的tidyselect everything()参数。但这会产生一个可以理解的错误。我不知道怎么解决这个问题。

代码语言:javascript
复制
df %>% group_by(x1) %>% fill(everything(), .direction = "updown")
#> Error: Column `x1` can't be modified because it's a grouping variable

I asked a related question yesterday,关于命名everything()参数的异常,在我的方法中太简单了,因此在我想要在解决方案中看到的意图上造成了混乱。建议的解决方案“您可以使用select(-variable)",在我前面概述的情况下是行不通的(我相信)。因此,这个新问题。我做什么好?

我还应该提到,简单地选择数字列序列(即2:100)是行不通的,因为我需要按名称(例如x45x70)从列中挑选出一些列。而列的顺序可以逐月变化,我不得不按栏名来挑选。因此,使用everything()everything_but(column.names = c(x45, x70))的选项将是我真正想要的。它存在吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-24 13:27:10

你可以:

代码语言:javascript
复制
df %>%
 group_by(x1) %>%
 fill(-x1, .direction = "updown")

  x1       x2    x3
  <chr> <dbl> <dbl>
1 A         8     3
2 A         8     6
3 A         8     5
4 B         5     9
5 B         5     1
6 B         5     9

这种行为记录在tidyr的文档中(还请参阅@Gregor中的评论):

您可以提供裸变量名,在x和z之间选择x:z之间的所有变量,用-y.

排除y。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58542413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档