- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 dplyr 将条件 rowMeans 应用于每组 ID。可重现的表格如下:
dat <- as.Date("2021/08/04")
len <- 4
seq(dat, by = "day", length.out = len)
input <- data.frame(
date = c(seq(dat, by = "day", length.out = len) , seq(dat, by = "day", length.out = len)),
user_id = c(rep("aa",4),rep("bb",4)),
var1 = c(1:4),
var2 = c(4,7,23,9,0,0,0,0),
var3 = c(0,0,0,0,4,8,2,7)
)
逻辑是:对于每个 ID,首先选择数字列且它们的总和为 =!0,然后计算选定列的 rowMean那个ID。
所需的输出表如下:
output = data.frame(
date = c(seq(dat, by = "day", length.out = len) , seq(dat, by = "day", length.out = len)),
user_id = c(rep("aa",4),rep("bb",4)),
var1 = c(1:4),
var2 = c(4,7,23,9,0,0,0,0),
var3 = c(0,0,0,0,4,8,2,7),
rowAverage = as.numeric(c(rowMeans(input[1:4,3:4]), rowMeans(input[5:8,c(3,5)])))
)
我想到的行如下,但我遇到了一些错误:
output = input %>%
dplyr::group_by(user_id) %>%
dplyr::mutate(rowAverage = rowMeans(select_if(function(x) {(is.numeric(x)) && (sum(x)=!0)})))
你能帮我改正这个吗?谢谢。
最佳答案
你很亲近。您也只需将数据提供给 select_if()
。为此使用 cur_data()
。
input %>%
group_by(user_id) %>%
mutate(rowAverage = rowMeans(
select_if(cur_data(), \(x) is.numeric(x) && sum(x) != 0)
))
#> # A tibble: 8 × 6
#> # Groups: user_id [2]
#> date user_id var1 var2 var3 rowAverage
#> <date> <chr> <int> <dbl> <dbl> <dbl>
#> 1 2021-08-04 aa 1 4 0 2.5
#> 2 2021-08-05 aa 2 7 0 4.5
#> 3 2021-08-06 aa 3 23 0 13
#> 4 2021-08-07 aa 4 9 0 6.5
#> 5 2021-08-04 bb 1 0 4 2.5
#> 6 2021-08-05 bb 2 0 8 5
#> 7 2021-08-06 bb 3 0 2 2.5
#> 8 2021-08-07 bb 4 0 7 5.5
关于r - 带 dplyr 的条件 rowMeans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74152431/
我正在处理一个数据集,其中源名称由变量前面的 2 个字母缩写指定。所以来自源 AA 的所有变量都以 AA_var1 开头,源 bb 有 bb_variable_name_2 。实际上有很多来源和很多变
我的数据框看起来像: 我的数据看起来像.. Tester Type Subject Type Time 1 2 3 TType1 STyp
考虑以下矩阵, nc <- 5000 nr <- 1024 m <- matrix(rnorm(nc*nr), ncol=nc) 我想在这个矩阵中随机取两组相同大小的 rowMeans 之间的差异。
我想计算一系列列的 rowMeans,但我无法给出列名(例如 c(C1,C3))或范围(例如 C1:C3)的硬编码值,因为名称和范围都是可变的。我的 df 看起来像: > df chr name
我一直在尝试在 dplyr 的 mutate 函数中运行计算 rowMeans,但不断出现错误。下面是一个示例数据集和所需的结果。 DATA = data.frame(SITE = c("A","A"
我想使用 dplyr 将条件 rowMeans 应用于每组 ID。可重现的表格如下: dat % dplyr::group_by(user_id) %>% dplyr::mutate(
要分别从列、行和观察中清除 colMeans、rowMeans 和 mean,我使用以下代码: a <- matrix(data=seq(from=2, to=60, by=2), nrow=6, n
我想计算列 x 和 y 的平均值,如下所示,并添加一列 Mean, > z w x y 1 5 1 1 2 6 2 2 3 7 3 3 4 8 4 0 我正在使用
我在任何地方都找不到答案。 我想计算基于行平均值的数据框的新变量。 例如: data % rowwise() %>% mutate(c=mean(c(a,b))) # id
我有一个数据框,其中包含不同样本中基因的定量值,我想将每个值除以行平均值。后跟所有值的 log2。这可以通过 base R 完成,如下所示,但我无法使用管道使其工作。 示例数据框: df % muta
我想问的是,从算法上看,rowMeans() 是做什么的?和 colMeans()优化速度的功能? 最佳答案 另外,考虑一下 lapply()做。它设置对函数 mean() 的重复调用.除了实际计算平
我是一名优秀的程序员,十分优秀!