r - 在 dplyr 中使用“first”来选择组的第一个不是 NA 的值
问题描述
我的 df "temp" 看起来像以下内容的前四列:
ID OBS NUMER DENOM RATIO
1 1 26 NA 1.5
1 2 10 NA 0,5556
1 3 18 18 1
1 4 51 26.333 1,461
2 1 17 NA 0,2
我试图通过将 NUMER 列的组值除以组的第一个 DENOM 值(不是 NA)来添加第五列。我该怎么做呢?
temp %>%
group_by(ID) %>%
mutate(RATIO = NUMER/first(DENOM[!is.na(DENOM)]))
但是,运行此命令会给我以下错误消息:
mutate_impl(.data, dots) 中的错误:列RATIO
的长度必须为 2(组大小)或 1,而不是 0。
我也试过
temp %>%
group_by(ID) %>%
mutate(RATIO = NUMER/first(.$DENOM[!is.na(.$DENOM)]))
但在这种情况下,它似乎除以整个 DENOM 列的第一个值,而不是该列的组的第一个值。请帮忙!:(
解决方案
推荐阅读
- web-scraping - 使用代理进行 Java Web 抓取
- docker - 你喜欢如何为大型项目组织 docker-compose.yml?
- node.js - Fs.readFile 返回未定义
- sql-server - 更快的 I/O 可以减少索引中的页面拆分吗?
- python - 如何使用熊猫读取其中项目是引用的文本文件
- android - 连接到BLE后获取最后收到的数据?
- kotlin - 为什么 Kotlin Lambda 函数在调用时不执行?
- c# - Multiple fixture instances
- python - 使用字典查找样式访问 numpy,但保留 numpy 数组操作
- .net - 为什么 String.IsNullOrWhiteSpace(vbNullChar) = False?