【问题标题】:Incrementing variables from R queries从 R 查询中增加变量
【发布时间】:2021-09-10 16:30:09
【问题描述】:

您好,所以我是 R 新手,有点不知道我在寻找什么。我想测量灰尘浓度的每个频率的概率,所以我需要将每个频率除以整个灰尘浓度频率。到那时我可以继续寻找灰尘浓度的 CDF 和 PMF。

所以我有一个灰尘概率数据,它有两列(灰尘浓度及其频率),它看起来像这样:

在我的第一个想法中,我必须在这行 R 查询中增加 i

dustProb[i, "Frekuensi"]

这应该在第 i 行中采用特定频率,这样我就可以在使用这样的 for 循环获得之后从它查询的所有频率求和。

# the dataset is called dustData here
# dustFrequencies = dustData[i, "Frekuensi"]
for(i in dustFrequencies){
    print(dustFrequencies)

}

print() 部分应该是我对通过递增查询获得的所有变量求和的地方。

我的问题是:

  1. 我可以增加 R 查询中的“i”吗
  2. 是我的方法太复杂还是有其他方法可以测量 R 中的概率?

很抱歉有很多混乱、无效率和漏洞,我希望我在这里已经足够清楚了。

【问题讨论】:

  • 我不确定:您想获取每个粉尘浓度发生的概率,并根据频率计算这些概率吗?
  • 是的,我的意思是将每个频率划分为整个频率,不是这样。然后我应该寻找一种方法,将表格的一个频率除以所有频率的总和。但是一个一个地做效率不高,所以我有点想用 for 循环来增加它

标签: r statistics data-science probability


【解决方案1】:

在 R 中使用循环不是很友好。你可以这样做:

library(dplyr)
dustData <- dustData %>%
  mutate(probabilities = Frekuensi/sum(Frekuensi))

对于每个粉尘浓度,新列是频率除以所有频率的总和。

【讨论】:

  • “概率”是否包括该行中的所有频率,还是我应该为下一个频率创建另一个变量?如果我想为每个频率制作一组全新的概率以便绘制它们怎么办?
  • 它的作用是:对于每一行,它取 Frekuensi 的值,除以所有 Frekuensi 的总和,然后以列概率返回结果。例如,第一行是 11 除以所有 Frekuensi 的总和,结果写入同一行。然后,它将 20 除以所有 Frekuensi 的总和,以此类推所有行。我希望这就是你所期望的原因
  • 看起来可行,但我无法打印“概率”变量。如何打印它以及 'dustData ->dustData' 的目的是什么?抱歉问太多了
  • 没问题 :) 要打印该列,您可以使用dustData$probabilitiesdustData &lt;- dustDatadplyr 语法的典型写法。您无需创建新对象,而是修改您正在处理的对象。您可以在此处了解有关 dplyr 的更多信息:dplyr.tidyverse.org
  • 哦,现在我的表有一个名为“概率”的新行。要调用这一行中的一个元素,我可以使用该dustData[1, Probabilities]。正确的?谢谢你帮助我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-09
  • 1970-01-01
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多