r - 使用 dplyr 按特定组中的变量拆分
问题描述
如何使用拆分和复制数据框dplyr
?想象一下,我有一个包含分组变量(即group
)、样本 id(即sample
)和值的数据框。
library(tidyverse)
df <- tibble(group = c(rep(LETTERS[1:3], 3), "mix", "mix"),
sample = paste0("sample", seq(1, 11)),
value = rnorm(11, 20, sd = 30))
我需要通过混合组和来自该组的样本将此数据帧拆分为另外两个数据帧。第一组将是没有sample11
行的所有数据框,第二组 - 没有sample10
行。像这样但更现代的方式。我相信有一个功能)
list(
df1 = df %>% filter(sample != "sample10"),
df2 = df %>% filter(sample != "sample11")
)
我需要对数十个目标样本进行此操作,然后为每个 df 映射一个函数。
解决方案
试试这个
lapply(which(df$group == "mix"), function(x) df[-x, ])
到管道形式
df %>%
{ which(.$group == "mix") } %>%
map(~ df[-., ])
推荐阅读
- azure - 用于多个 Azure 服务的 Azure 自定义域
- python-3.x - 如何比较嵌套列表并将不匹配项追加到python3中的新列表?
- typescript - 打字稿从给定接口缩小类型
- javascript - iPadOS 14 Apple Pencil 快速点击不起作用。- HTML JavaScript ontouchstart/onpointerdown
- r - 如何找到与 R 中另一个指定列包含相同值的列?
- ruby-on-rails - 从 Rails 4.2 升级到 5.2 后“无法自动加载常量”
- go - 在 go 结构中使用空结构作为字段的目的是什么?
- json - 如何在 Azure Data Facory 中输出 JSON 数据
- scala - 通过反射获取案例类字段的问题
- java - 工厂方法“mvcResourceUrlProvider”抛出异常;嵌套异常是 java.lang.NoSuchFieldError: defaultInstance