r - 结合选择助手和谓词函数在 dplyr 中进行变异
问题描述
我想同时基于谓词函数(例如is.character
)和“选择助手”(例如starts_with("Z")
)以编程方式选择要变异的列。
library(dplyr)
df <- tibble(V1 = "a", V2 = 1, Z1 = "a", Z2 = 1)
所需的输出(mutate_at(df, "Z1", paste, "b")
但没有Z1
明确选择):
structure(list(V1 = "a", V2 = 1, Z1 = "a b", Z2 = 1), class = c(
"tbl_df", "tbl", "data.frame"
), row.names = c(NA, -1L))
换句话说,如何“组合”mutate_at(df, vars(starts_with("Z")), paste, "b")
并mutate_if(df, is.character, paste, "b")
在单个变异中?
解决方案
为什么不使用两个步骤?
df %>%
select_if(is.character) %>%
select(starts_with("Z"))
编辑:
select_if(df, is.character) %>%
select(starts_with("Z")) %>%
names() %>%
mutate_at(df, ., paste, "b")
推荐阅读
- java - Querying of Members of a Cooperative by using any search term and the cooperative id in hibernate search
- google-apps-script - How can I compare two Column A on two sheet for differences and update the differences on the older sheet using Google Apps Script?
- ssl - Hyperledger fabric mutual TLS authentication causes Orderer error: "tls: bad certificate"
- swift - 从回调中创建发布者
- r - Aggregate data and exclude duplicates in one column
- postgresql - Postgresql 应该 left join 使用 WHERE 还是 ON 就足够了?
- java - 无法在 Android 中更新 Firebase 实时数据库
- laravel - 如何从全局函数中使用 v-if
- django - Django 2.3: I committed my secret key to a private repository. Can I just edit the secret key myself and then add .env file to .gitignore?
- python - How to fix "curl: (6) Could not resolve host: bootstrap.pypa.io"