首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过R中的几个组找到更新的值

通过R中的几个组找到更新的值
EN

Stack Overflow用户
提问于 2022-10-06 11:46:09
回答 1查看 113关注 0票数 3

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

代码语言:javascript
复制
Forecaster CountryName ProductName X2022 X2023 file_month
Allianz    USA          Inflation   6.1   2.5   7
EIU        USA          Inflation   7.7   3.7   7
Oxford     USA          Inflation   6.5   2.9   7
Allianz    USA          Inflation   NA    3.3   8
EIU        USA          Inflation   8.3   3.7   8

数据是长格式的,file_month显示数据生成的月份。现在,我需要创建新的列,该列引用预测者、CountryName、ProductName以及X2022或X2023更新的值。因此,在这个新列中,应该检查预测者是否修改了它的预测,如果是的话,新的修正值应该写在列中。

此外,由于整个数据集中有多个ProductName、CountryName和预报员,我想知道如何使这些组都能工作。

新的数据需要如下所示

代码语言:javascript
复制
Forecaster CountryName ProductName X2022 X2023 file_month update_2022 update_2023
Allianz    USA          Inflation   6.1   2.5   7          
EIU        USA          Inflation   7.7   3.7   7          
Oxford     USA          Inflation   6.5   2.9   7            
Allianz    USA          Inflation   NA    3.3   8            NA           3.3
EIU        USA          Inflation   8.3   3.7   8            8.3          NA

为了代码可复制性,我添加了dput()输出。

代码语言:javascript
复制
data <- structure(list(Forecaster = c("Moody's Analytics", "Oxford Economics", 
                                "Julius Baer", "Fitch Solutions", "SEB", "Allianz", "EIU", "FrontierView", 
                                "Euromonitor Int.", "Fitch Ratings", "Scope Ratings", "Allianz", 
                                "EIU", "Euromonitor Int.", "Fitch Ratings", "Fitch Solutions", 
                                "FrontierView", "Julius Baer", "Moody's Analytics", "Oxford Economics", 
                                "Scope Ratings", "SEB", "Allianz", "EIU", "Euromonitor Int.", 
                                "Fitch Ratings", "Fitch Solutions", "FrontierView", "Julius Baer", 
                                "Moody's Analytics", "Oxford Economics", "Scope Ratings", "SEB", 
                                "Allianz", "EIU", "Euromonitor Int.", "Fitch Ratings", "Fitch Solutions", 
                                "FrontierView", "Julius Baer", "Moody's Analytics", "Oxford Economics", 
                                "Scope Ratings", "SEB", "Allianz", "EIU", "Euromonitor Int.", 
                                "Fitch Ratings", "Fitch Solutions", "FrontierView", "Julius Baer", 
                                "Moody's Analytics", "Oxford Economics", "Scope Ratings"), 
CountryName = c("USA", 
"USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA", 
"USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA", 
"USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA", 
"USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA", 
"USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA", 
"USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA"), 
ProductName = c("Inflation", 
"Inflation", "Inflation", "Inflation", "Inflation", "Inflation", 
"Inflation", "Inflation", "Inflation", "Inflation", "Inflation", 
"Inflation", "Inflation", "Inflation", "Inflation", "Inflation", 
"Inflation", "Inflation", "Inflation", "Inflation", "Inflation", 
"Inflation", "Inflation", "Inflation", "Inflation", "Inflation", 
"Inflation", "Inflation", "Inflation", "Inflation", "Inflation", 
"Inflation", "Inflation", "Inflation", "Inflation", "Inflation", 
"Inflation", "Inflation", "Inflation", "Inflation", "Inflation", 
"Inflation", "Inflation", "Inflation", "Inflation", "Inflation", 
"Inflation", "Inflation", "Inflation", "Inflation", "Inflation", 
"Inflation", "Inflation", "Inflation"), 
X2022 = c(6.58180388987726, 
          7.39615, 5.71530516215215, 6.5, NA, 6.1, 7.2, 6.2, 7.31, 6.9, 
          NA, 6.1, 7.7, 7.49, 6.9, 6.5, 6.2, 7.01535416655227, 6.94177167480419, 
          7.40344, NA, 7.5, 6.1, 7.7, 7.49, 6.9, 6.5, 6.2, 7.01535416655227, 
          6.94177167480419, 7.40344, NA, 7.5, NA, 8.3, 7.99, 7.8313, 7.3, 
          8.4, 7.45242025035952, 7.51681072158563, 8.04052, NA, 7.5, 8.2, 
          8.1, 8.01, 7.8313, 7.7, 8.6, 7.94553624147252, 7.82785941572661, 
          8.11193, NA), 
X2023 = c(2.62716826359282, 1.73992, 2.32590118928029, 
        2.5, NA, 2.5, 2.8, 3.3, 4.02, 2.7, NA, 2.5, 3.7, 4.01, 2.7, 2.5, 
        3.3, 2.96909559451206, 2.70488419782626, 2.01984, NA, 4.2, 2.5, 
        3.7, 4.01, 2.7, 2.5, 3.3, 2.96909559451206, 2.70488419782626, 
        2.01984, NA, 4.2, NA, 3.7, 4.21, 3.7199, 3.5, 4.9, 3.02315479834998, 
        3.10232274684858, 3.17401, NA, 4.2, 3.2, 3.8, 4, 3.7199, 3.7, 
        5.7, 3.48906158848119, 3.36435085973137, 3.27724, NA), 
file_month = c(5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 
   6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
   8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 
   9L, 9L, 9L, 9L, 9L)), class = "data.frame", row.names = c(NA,-54L))
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73973251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档