r语言 - 我应该使用哪个() Match() 函数来根据另一个 data.frame 中定义的 colname 提取数据?



>我有一个数据框,其中包含一段时间内数千个实体的数字。 我在同一时间段内有另一个数据框,随着时间的推移具有不同的列名称:

> mfdf
#date Entity1 Entity2 Entity3 ... EntityN
#1988   1       13     16     ...  17
#1989   2       14     3      ...  11
#1990   6       15     8      ...  4
#...  ...      ...    ...     ...  6
#2018   4       1      8      ...  5

我想根据列名称的数据框提取年份的相应实体编号:

> curationdf
#date  V1         V2
#1988 Entity64    Entity2
#1989 Entity1     Entity57
#1990 Entity1500  Entity70
#...
#2018 Entity23    Entity9

如果这是在 excel 中完成的,那将是一个 =IF(MATCH((( 作业,但我不熟悉如何在 R 编程中构造类似的东西。

不是那么短,但有一个带有tidyr和dplyr的解决方案:

gather(df,var,val,-year) %>% inner_join(curationdf,"year") %>% 
filter((var==v1)|(var==v2)) %>%
mutate(var=ifelse(var==v1,"v1","v2")) %>% spread(var,val)

相关内容

  • 没有找到相关文章

最新更新