计算月份的平均值并替换其他列的值

用户15051990

我有一个如下所示的数据框:

vdate=c("12-04-2015","13-04-2015","14-04-2015","15-04-2015","12-05-2015","13-05-2015","14-05-2015"
    ,"15-05-2015","12-06-2015","13-06-2015","14-06-2015","15-06-2015")
month=c(4,4,4,4,5,5,5,5,6,6,6,6)
col1=c(12,12.4,14.3,3,5.3,1.8,7.6,4.5,7.6,10.7,12,15.7)

df=data.frame(vdate,month,col1)

以下是包含基于一些计算的值的列:

pvar=c(8.4,2.4,12,14.4,2.3,3.5,7.8,5,16,5.4,18,18.4)

现在,我要替换pvar值,如果它的值小于该特定月份的平均值。

For example,
for month 4,
Average value of pvar is 9.3 ((8.4+2.4+12+14.4)/4).

然后替换pvar中所有小于第4个月的平均值(8.4&2.4)的值。Pvar值为9.3,9.3,12,14.4

我需要对pvar中的所有值执行此操作。

MKR

一个dplyr基础的解决方案可能是:

  #Additional condition has been added to check if month != 6
  cbind(df, pvar) %>%
  group_by(month) %>%
  mutate(pvar = ifelse(pvar < mean(pvar) & month != 6, mean(pvar), pvar))  %>% 
  as.data.frame()

# vdate month col1  pvar
# 1  12-04-2015     4 12.0  9.30
# 2  13-04-2015     4 12.4  9.30
# 3  14-04-2015     4 14.3 12.00
# 4  15-04-2015     4  3.0 14.40
# 5  12-05-2015     5  5.3  4.65
# 6  13-05-2015     5  1.8  4.65
# 7  14-05-2015     5  7.6  7.80
# 8  15-05-2015     5  4.5  5.00
# 9  12-06-2015     6  7.6 16.00
# 10 13-06-2015     6 10.7  5.40
# 11 14-06-2015     6 12.0 18.00
# 12 15-06-2015     6 15.7 18.40

数据

vdate=c("12-04-2015","13-04-2015","14-04-2015","15-04-2015","12-05-2015",
        "13-05-2015","14-05-2015","15-05-2015","12-06-2015","13-06-2015",
        "14-06-2015","15-06-2015")
month=c(4,4,4,4,5,5,5,5,6,6,6,6)
col1=c(12,12.4,14.3,3,5.3,1.8,7.6,4.5,7.6,10.7,12,15.7)

df=data.frame(vdate,month,col1)
pvar=c(8.4,2.4,12,14.4,2.3,3.5,7.8,5,16,5.4,18,18.4)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 MATLAB 中用其他值(平均值)替换 NaN

根据数据框中其他列中的分组值计算列的平均值

蟒蛇。熊猫 CSV。用其他列值计算平均值

根据其他列中的值计算Google文档中的平均值

用滚动平均值或其他插值替换NaN或缺失值

我想计算特定月份的熊猫列的平均值

用同一列的平均值(不是列的空值)替换一列中的 nan 值,而其他列具有某些值

用其他平均值替换整个数据框中的NaN值

如何优化用其他栅格区域平均值替换栅格 nan 值的 Python 循环

根据另一列中的其他 ID 计算 R 中列的平均值

如何根据 CSV 中的其他列值访问列值并找到它的平均值

计算MySQL中其他平均值的平均值

计算平均值并将其写入其他文件

根据 Google 表格中的其他列查找平均值的计算脚本

按年份分组和其他列,并根据特定条件的熊猫计算平均值

计算新列作为其他列熊猫的平均值

在计算其他列的平均值时按“日期”分组

如何分组,总结和计算列中每个其他元素的平均值?

如何基于熊猫中其他列的条件对列的某些值求平均值

列的平均值,条件是其他列的前x%

根据组中其他值的平均值创建新列

计算某些列的平均值,不计算空值

大熊猫中是否有任何包装可以基于其他列计算列值的所选部分的平均值

numpy数组:用列的平均值替换nan值

pandas DataFrame:用列的平均值替换nan值

用平均值替换已过滤列的NaN值

熊猫用平均值替换列的值

计算时间间隔内列值的平均值

计算MySQL列中不同值的移动平均值