r - 我想创建一个新列,其中 3 个组的第一行和最后一行为 2,否则为 NA
问题描述
我有3组
group1 group2 group3 time
1 1 1 3:0
1 1 1 4:0
1 1 1 9:0
1 2 1 6:0
1 2 2 5:0
1 2 2 2:0
1 2 2 1:0
2 1 1 3:0
2 3 2 1:0
新专栏
group1 group2 group3 time new
1 1 1 3:0 2
1 1 1 4:0 NA
1 1 1 9:0 2
1 2 1 6:0 2
1 2 2 5:0 2
1 2 2 2:0 NA
1 2 2 1:0 2
2 1 1 3:0 2
2 3 2 1:0 2
group_by(group1,group2,group3) 的第一行和最后一行是 2,其他行是 NA。我知道我可以通过 slice 和 mutate 获得它,但我找不到正确的格式。
解决方案
d %>%
group_by_at(vars(-time)) %>%
mutate(new = replace(NA, range(row_number()), 2))
## A tibble: 9 x 5
## Groups: group1, group2, group3 [5]
# group1 group2 group3 time new
# <int> <int> <int> <chr> <dbl>
#1 1 1 1 3:0 2
#2 1 1 1 4:0 NA
#3 1 1 1 9:0 2
#4 1 2 1 6:0 2
#5 1 2 2 5:0 2
#6 1 2 2 2:0 NA
#7 1 2 2 1:0 2
#8 2 1 1 3:0 2
#9 2 3 2 1:0 2
推荐阅读
- javascript - JQuery 显示/隐藏 DIV 无法正常工作
- python - keras 卷积层中的内核大小是如何定义的?
- c# - 如何管理不同服务器上的多个服务
- c# - WebView 中的 WebGL 在 UNO 构建中不起作用,但在 Xamarin 构建中起作用
- html2canvas - html2Canvas - 返回的画布为空
- javascript - 带有回调的 useEffect 不更新状态
- polymer - Polymer 3 - 如何构建用于另一个项目的组件
- javascript - 考虑到性能和广告显示,如何使用 React 和样式化组件在 2 个响应式标题(移动和桌面)之间切换?
- reactjs - 将导入的 .less 文件转换为 css 字符串
- laravel - Laravel Api Postman 上传图片返回 Null