小编Gra*_*Guy的帖子

R数据帧中的和变量

对不起,我确定已经问过类似的问题,但我恐怕找不到了.我只是想在数据帧中总结很多变量.作为一个小例子,我想做的是计算df $ e,如下所示.

df <- data.frame(a=c(1,2,3,4,5), b=(c(6,7,8,9,10)), 
                 c=c(1,2,3,4,5), d=(c(6,7,8,9,10)))

df$e <- with(df, a+b+c+d) # this is the right answer
Run Code Online (Sandbox Code Playgroud)

但我想通过说df $ e < - "a和d之间所有变量的总和来表达它."

谢谢!帮助也赞赏标记.

回答: df$e <- rowSums(subset(df, select=a:d))

我没有表达,我需要它很清楚,但我是一无所知,subset因为我是的rowSums.

r

7
推荐指数
1
解决办法
3万
查看次数

R:在将NA计算为零的情况下,如何在案例中对变量求和

虚假数据插图:

df <- data.frame(a=c(1,2,3,4,5), b=(c(2,2,2,2,NA)), 
                 c=c(NA,2,3,4,5)))
Run Code Online (Sandbox Code Playgroud)

如果不是NA值,这会得到我想要的答案:

df$count <- with(df, (a==1) + (b==2) + (c==3)) 
Run Code Online (Sandbox Code Playgroud)

如果我只对它感兴趣,那么会有更优雅的方式吗,例如变量== 2?

df$count <- with(df, (a==2) + (b==2) + (c==2)) 
Run Code Online (Sandbox Code Playgroud)

非常感谢!

r na

5
推荐指数
1
解决办法
2703
查看次数

通过计算R中每个试验概率的累积概率来学习使用循环

我一直在努力寻找答案.我保证我会尝试从解决方案中学习.为了学习,我想了解如何使用显式循环,但如果你想分享矢量化方法作为奖励,也非常感谢.

假设我每天都要玩一次游戏,我知道每天获胜的可能性.我想要一个函数,它接受概率向量并至少在一天内返回累积成功概率.因此,如果我连续玩了3天并且胜利的概率是每天0.5,那么我的函数应该返回"0.875,0.75,0.5"

这是我最近尝试编写此函数的失败:

prob_cum <- function(prob_today) {
  p_cum <- rep(0, length(prob_today))
  for (i in 1:length(prob_today)) {
    for (j in i:length(prob_today)) {
      p_cum[j] <- p_cum[j-1] - ((1 - p_cum[j-1]) * prob_today[j])
    }
  }
  p_cum
}

prob_daily <- c(.5,.5,.5)
prob_cum(prob_daily)
Run Code Online (Sandbox Code Playgroud)

loops r probability

0
推荐指数
1
解决办法
649
查看次数

标签 统计

r ×3

loops ×1

na ×1

probability ×1