如何为 R 中每个类别的最后一个值添加值?

数据挖掘器

数据样本。

mydat=structure(list(supplier = c("MyAgent", "MyAgent", "MyAgent", 
"MyAgent", "S7", "S7", "S7", "S7", "S7", "Travelfusion", "Travelfusion", 
"Travelfusion"), date = c("28.03.2021", "28.03.2021", "28.03.2021", 
"28.03.2021", "25.03.2021", "25.03.2021", "25.03.2021", "25.03.2021", 
"25.03.2021", "28.03.2021", "28.03.2021", "28.03.2021"), hour = c(3L, 
4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 4L, 5L, 6L), weekday = c(0L, 
0L, 0L, 0L, 4L, 4L, 4L, 4L, 4L, 0L, 0L, 0L), base_price = c(1944.7, 
1949.43, 1954.16, 1958.89, 4595.2, 3170.02, 1744.84, 319.65, 
-1105.53, 3.83, 3.49, 3.15)), class = "data.frame", row.names = c(NA, 
-12L))

如何对于每个类别的supplier变量,添加100,000每个类别的最新值。例如,S7类别的最后一个值= -1105,53。所以-1105,53+100 000=98894,47So98894,47必须粘贴为最后一个值。但是最后一个Travelfusion类别的必须加上值 200 000。所以想要的输出

       supplier       date hour weekday base_price
1       MyAgent 28.03.2021    3       0    1944.70
2       MyAgent 28.03.2021    4       0    1949.43
3       MyAgent 28.03.2021    5       0    1954.16
4       MyAgent 28.03.2021    6       0  101958.89
5            S7 25.03.2021    7       4    4595.20
6            S7 25.03.2021    8       4    3170.02
7            S7 25.03.2021    9       4    1744.84
8            S7 25.03.2021   10       4     319.65
9            S7 25.03.2021   11       4   98894.47
10 Travelfusion 28.03.2021    4       0       3.83
11 Travelfusion 28.03.2021    5       0       3.49
12 Travelfusion 28.03.2021    6       0  200003.15

怎么做?

罗纳克·沙阿

您可以在数据中添加一个新列以添加值并将其用于replace

library(dplyr)

value_to_add <- c(100000,100000, 200000)

mydat %>%
  mutate(value_to_add = value_to_add[match(supplier, unique(supplier))]) %>%
  group_by(supplier) %>%
  mutate(base_price = replace(base_price, n(), last(base_price) + last(value_to_add))) %>%
  ungroup %>%
  select(-value_to_add)

# A tibble: 12 x 5
#   supplier     date        hour weekday base_price
#   <chr>        <chr>      <int>   <int>      <dbl>
# 1 MyAgent      28.03.2021     3       0    1945.  
# 2 MyAgent      28.03.2021     4       0    1949.  
# 3 MyAgent      28.03.2021     5       0    1954.  
# 4 MyAgent      28.03.2021     6       0  101959.  
# 5 S7           25.03.2021     7       4    4595.  
# 6 S7           25.03.2021     8       4    3170.  
# 7 S7           25.03.2021     9       4    1745.  
# 8 S7           25.03.2021    10       4     320.  
# 9 S7           25.03.2021    11       4   98894.  
#10 Travelfusion 28.03.2021     4       0       3.83
#11 Travelfusion 28.03.2021     5       0       3.49
#12 Travelfusion 28.03.2021     6       0  200003.  

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取基于python中的两个类别的列的最后一个值?

如何为R中的每个col的所有行重复一个函数

如何为R中的函数添加红线

如何在 R 中的第一个位置为列表的每个对象添加一个值

如何为 R 中的数据框每 14 天创建一个唯一值

如何为R中另一个列的每个级别创建一个列?

R:如何为特定值分配颜色

如何为R中的变量分配颜色?

如何为R中另一个数据帧的每个ID复制数据帧的所有行?

我如何获得R来计算一个数据集中属于另一个数据集中定义的类别的观测值的数量

如何使向量根据R中的最后一个值选择3个可能的值

如何选择特定类别的最后一个元素

如何获取R中列表的每个元素的最后一个子元素

如何为R中的第二行添加一个字符串?

如何为R中变量的每个级别返回代码向量?

如何为R中的每个变量提取某些行?

R:如何为每种因素组合创建一个观测值的数据框

如何检索每个类别的一个随机行?

在所有类别用完之前,如何从4个类别的数组中添加一个类别?

如何为一个多索引级别的所有缺失值添加行?

想要用 R 中另一个类别的重复值来改变一个类别的值

如何为R中的一个样本计算检验

如何为R中的函数向量分配与参数相同的值?

我如何为 R 中的 plot() 的最大值着色?

如何为 R 中的 id 字段分配新值

如何为R中的数据表中的每一行创建子类别

如何将具有多个类别的R数据帧转换为一个类别?

如何为R中的同一类别并排绘制两个几何?(错误barjitter)

igraph R | 如何为每个节点添加第二个内部圆?