- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下分组数据框,我想使用函数 dplyr::sample_n
从该数据框中为每个组提取行。我想使用分组变量的值NDG
在每个组中作为要从每个组中提取的行数。
> dg.tmp <- structure(list(Gene = c("CAMK1", "GHRL", "TIMP4", "CAMK1", "GHRL",
"TIMP4", "ARL8B", "ARPC4", "SEC13", "ARL8B", "ARPC4", "SEC13"
), GLB = c(3, 3, 3, 3, 3, 3, 10, 10, 10, 10, 10, 10), NDG = c(1,
1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2)), class = c("tbl_df", "tbl",
"data.frame"), row.names = c(NA, -12L), .Names = c("Gene", "GLB",
"NDG"))
> dg <- dg.tmp %>%
dplyr::group_by(GLB,NDG)
> dg
Source: local data frame [12 x 3]
Groups: GLB, NDG
Gene GLB NDG
1 A4GNT 3 1
2 ABTB1 3 1
3 AHSG 3 1
4 A4GNT 3 2
5 ABTB1 3 2
6 AHSG 3 2
7 AADAC 10 1
8 ABHD14B 10 1
9 ACVR2B 10 1
10 AADAC 10 2
11 ABHD14B 10 2
12 ACVR2B 10 2
> dg %>% dplyr::sample_n(NDG)
Source: local data frame [6 x 3]
Groups: GLB, NDG
Gene GLB NDG
1 A4GNT 3 1
2 A4GNT 3 2
3 ABTB1 3 2
4 AADAC 10 1
5 AADAC 10 2
6 ABHD14B 10 2
Error in eval(expr, envir, enclos) : object 'NDG' not found
dplyr::slice
当我使用代码时给出正确的输出
> dg %>% dplyr::slice(1:unique(NDG))
unique
有点hackish然而,在这种情况下,代码
> dg %>% dplyr::slice(1:NDG)
Warning messages:
1: In slice_impl(.data, dots) :
numerical expression has 3 elements: only the first used
2: In slice_impl(.data, dots) :
numerical expression has 3 elements: only the first used
3: In slice_impl(.data, dots) :
numerical expression has 3 elements: only the first used
4: In slice_impl(.data, dots) :
numerical expression has 3 elements: only the first used
NDG
正在评估(在适当的环境中)为
c(1,1,1)
或
c(2,2,2)
,因此
1:NDG
返回上述警告。
sample_n.grouped_df <- function(tbl, size, replace = FALSE, weight = NULL,
.env = parent.frame()) {
assert_that(is.numeric(size), length(size) == 1, size >= 0)
weight <- substitute(weight)
index <- attr(tbl, "indices")
sampled <- lapply(index, sample_group, frac = FALSE,
tbl = tbl, size = size, replace = replace, weight = weight, .env = .env)
idx <- unlist(sampled) + 1
grouped_df(tbl[idx, , drop = FALSE], vars = groups(tbl))
}
sample_n.grouped_df
找不到变量
NGD
因为它没有在正确的环境中寻找。
sample_n
的巧妙方法?在
dg
获得
Source: local data frame [6 x 3]
Groups: GLB, NDG
Gene GLB NDG
1 A4GNT 3 1
2 A4GNT 3 2
3 ABTB1 3 2
4 AADAC 10 1
5 AADAC 10 2
6 ABHD14B 10 2
最佳答案
一个可能的答案,但我不相信这是最佳答案:用 dplyr::sample_frac
置换数据帧的行(和 1 的一小部分),然后切片所需的行数:
> set.seed(1)
> dg %>%
dplyr::sample_frac(1) %>%
dplyr::slice(1:unique(NDG))
Source: local data frame [6 x 3]
Groups: GLB, NDG
Gene GLB NDG
1 A4GNT 3 1
2 AHSG 3 2
3 A4GNT 3 2
4 ACVR2B 10 1
5 AADAC 10 2
6 ACVR2B 10 2
关于r - dplyr sample_n 其中 n 是分组变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30950016/
这是来自 R 中 dplyr 的“sample_n”。 https://dplyr.tidyverse.org/reference/sample.html 为了可重复性,我应该放置一个种子,以便其他人
我试图从数据集中抽取一个分层样本,其中存在一个变量,表明每组的样本量应该有多大。 library(dplyr) # example data df % do.call(what = rbi
我想根据单独数据框中的索引给出的一组权重随机抽样月份,但索引会根据一些分类变量而变化。 下面是一个示例问题: require(dplyr) sim.size % group_by(category
我试图以分组的方式将采样函数应用于数据框,如果组大小小于 n,它应该从每个组或所有组成员中采样 n 个样本。 使用dplyr,我第一次尝试 library(dplyr) mtcars %>% grou
根据dplyr帮助文件 sample_n函数对每组采样固定数量。 当我运行以下代码时,我希望每个 tobgp 和 alcgp 组合有两个样本,因此总共有 32 (4*4*2) 行。但是只返回两行。 b
我有以下分组数据框,我想使用函数 dplyr::sample_n从该数据框中为每个组提取行。我想使用分组变量的值NDG在每个组中作为要从每个组中提取的行数。 > dg.tmp dg % d
我是一名优秀的程序员,十分优秀!