【发布时间】:2021-11-18 04:17:56
【问题描述】:
对于每个 Vx(V1...V2 等)列,如果 V1 = 0,我正在尝试提取 Yi0 数据的平均值,如果 V1=1,则 Yi1 数据的平均值,但我的代码似乎有缺陷,有人对我如何解决这个问题有建议吗?
这是我的示例数据和代码
set.seed(1)
df <- data.frame(Yi0 = runif(n=10, min = 0, max = 10),
Yi1 = runif(n=10, min = 0, max = 10),
V1 = c(1,1,1,1,1,0,0,0,0,0),
V2 = c(0,1,0,1,0,1,0,1,0,1))
pm <- function(x) {
as.numeric(
ifelse(
test = df[,x] == 0,
yes =mean(df["Yi0"]),
no = ifelse(
test = df[,x] == 1,
yes = mean(df["Yi1"]),
no = "error")))
}
ab <- sapply(X = 3:4, FUN=pm)
ab
最终,我要取 mean(2.059 + 1.765 + ... + 7.69) - mean(8.9838+9.446+...+0.6178),对于以 V 开头的每一列,我总共有其中有 200 万...
谢谢
【问题讨论】:
-
如果我使用 set.seed 1,我希望取 (2.059746 + 1.765568 + ... 7.698414) 的平均值 - (8.9838+9.4467+...+0.61786) 的平均值 - 59.448
-
嗨!我已经编辑了帖子,您可以在上面找到它们,非常感谢您
标签: r dataframe loops mean sapply