r - 计算 R 中值随时间出现的百分比
问题描述
我是 R 新手,很抱歉,如果这是已经被询问和解决的问题 - 整个早上都在尝试搜索,但我不确定我是否能够正确地用词。
我希望能够计算一个值随时间出现的百分比。例如,我有一个包含两列的表,天数和输入值。
是否可以计算特定值相对于天数和先前事件的出现百分比,然后对其进行变异?IE
Day Value Percentage
1 1 1.00
2 1 1.00
3 2 ...
4 1 ...
最终目标是将其显示在曲线图中,显示在整个时间段内值 1 的使用情况。
可能有更好的方法,而不是在这里使用百分比。这是我最初想到的。
解决方案
一种选择使用replace
dat$Percentage <- with(dat,
replace(cumsum(Value == 1) / seq_along(Value), Value != 1, NA))
dat
# Day Value Percentage
#1 1 1 1.0000000
#2 2 1 1.0000000
#3 3 1 1.0000000
#4 4 2 NA
#5 5 1 0.8000000
#6 6 2 NA
#7 7 2 NA
#8 8 1 0.6250000
#9 9 1 0.6666667
#10 10 1 0.7000000
如果您希望对列中的所有不同值进行此计算,Value
您可以执行
dat$Percentage2 <- with(dat,
ave(Value, Value, FUN = seq_along) / seq_len(dim(dat)[1]))
数据
set.seed(1)
dat <- data.frame(Day = 1:10,
Value = sample(1:2, 10, TRUE, prob = c(.7, .3)))
推荐阅读
- azure-devops - 如何允许脚本从 yaml 构建访问 OAuth 令牌
- android - 改造处理令牌过期
- sql - SQL 选择不同 id 的值,其中不是最小值 - 没有子查询 - Oracle SQL
- intellij-idea - 用于使用 intelliJ env 编辑规则文件的 Drools UI
- 3d - 我可以在 3ds Max 中只渲染 Vray ExtraTex
- sql - Access Query中基于项目和日期的运行总计
- react-native - 如何在 TabNavigator 中隐藏图标?
- python-3.x - 从信号中提取 delta、theta、alpha、beta 和 gamma 波
- ios - Jenkins 或远程登录上的 Fastlane 错误 65
- bash - 将状态发送到 Github