gpt4 book ai didi

r - 计算一系列列的 rowMeans(变量数)

转载 作者:行者123 更新时间:2023-12-04 12:14:57 29 4
gpt4 key购买 nike

我想计算一系列列的 rowMeans,但我无法给出列名(例如 c(C1,C3))或范围(例如 C1:C3)的硬编码值,因为名称和范围都是可变的。我的 df 看起来像:

> df
chr name age MGW.1 MGW.2 MGW.3 HEL.1 HEL.2 HEL.3
1 123 abc 12 10.00 19 18.00 12 13.00 -14
2 234 bvf 24 -13.29 13 -3.02 12 -0.12 24
3 376 bxc 17 -6.95 10 -18.00 15 4.00 -4

这只是一个示例,实际上我的列范围为 MGW.1 ... MGW.196 等等。在这里,我不想给出确切的 colnames 或确切的范围,而是想传递 colnames 的首字母,并希望获得具有该首字母的所有列的平均值。类似于:MGW=rowMeans(df[,MGW.*]), HEL=rowMeans(df[,HEL.*])

所以我的最终输出应该是这样的:

> df
chr name age MGW Hel
1 123 abc 12 10.00 19
2 234 bvf 24 13.29 13
3 376 bxc 17 -6.95 10

我知道这些值是不正确的,但这只是为了给你和想法。 其次,我想从数据框中删除除前 3 个值外整行都包含 NA 的所有行

这是示例的输入:

> dput(df)
structure(list(chr = c(123L, 234L, 376L), name = structure(1:3, .Label = c("abc",
"bvf", "bxc"), class = "factor"), age = c(12L, 24L, 17L), MGW.1 = c(10,
-13.29, -6.95), MGW.2 = c(19L, 13L, 10L), MGW.3 = c(18, -3.02,
-18), HEL.1 = c(12L, 12L, 15L), HEL.2 = c(13, -0.12, 4), HEL.3 = c(-14L,
24L, -4L)), .Names = c("chr", "name", "age", "MGW.1", "MGW.2",
"MGW.3", "HEL.1", "HEL.2", "HEL.3"), class = "data.frame", row.names = c(NA,
-3L))

最佳答案

首先

我想你正在寻找这个来获得行的平均值:

df$mean.Hel <- rowMeans(df[, grep("^HEL.", names(df))])

然后删除列:

df[, grep("^HEL.", names(df))] <- NULL

其次

删除前三个元素后只有NA的行。

rows.delete <- which(rowSums(!is.na(df)[,4:ncol(df)]) == 0)
df <- df[!(1:nrow(df) %in% rows.delete),]

关于r - 计算一系列列的 rowMeans(变量数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38618110/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com