【发布时间】:2016-11-07 18:15:00
【问题描述】:
我已经找到了很多关于如何根据数字公式而不是名称创建新列的答案。
我有一个融化的数据框,我需要为其创建一个新列来显示变量所属的类别。这是我当前数据框的一部分:
Year Type variable value
1 2016 T Agrostis.canina 6
2 2016 R Agrostis.canina 2
3 2016 Q Agrostis.canina 0
4 2016 T Carex.nigra 0
5 2016 R Carex.nigra 9
6 2016 Q Carex.nigra 3
7 2015 T Agrostis.canina 0
8 2015 R Agrostis.canina 2
9 2015 Q Agrostis.canina 0
10 2015 T Carex.nigra 6
11 2015 R Carex.nigra 0
12 2015 Q Carex.nigra 5
我在工作环境中保存了每个类别下的变量名列表 - 我想使用这些来创建新列,因为有很多变量名!理想情况下,数据框应如下所示:
Year Type variable value veg.type
1 2016 T Agrostis.canina 6 Graminoid
2 2016 R Agrostis.canina 2 Graminoid
3 2016 Q Agrostis.canina 0 Graminoid
4 2016 T Carex.nigra 0 Dwarf.shrub
5 2016 R Carex.nigra 9 Dwarf.shrub
6 2016 Q Carex.nigra 3 Dwarf.shrub
7 2015 T Agrostis.canina 0 Graminoid
8 2015 R Agrostis.canina 2 Graminoid
9 2015 Q Agrostis.canina 0 Graminoid
10 2015 T Carex.nigra 6 Dwarf.shrub
11 2015 R Carex.nigra 0 Dwarf.shrub
12 2015 Q Carex.nigra 5 Dwarf.shrub
我尝试使用 inside 和 ifelse,但我认为我错过了其中的一个关键部分,因为还没有任何效果。
提前致谢!
编辑:每个 veg.type 基本上都是各种变量的子集,即。
Dwarf.shrub <- c("Calluna.vulgaris", "Empetrum.nigrum", "Erica.cinerea"...)
Graminoid <- c("Agrostis.canina", "Deschampsia.flexuosa", "Holcus.lanatus"...)
等等
这意味着我希望很多变量都具有相同的 veg.type。我希望这能澄清一点。
【问题讨论】:
-
是否有用于连接数据的密钥?检查 ?merge in basic R or。 left_join 在 dplyr 中,我最建议用于数据操作
-
你在什么基础上为 veg.type 列赋值?
-
我有列表或每个 veg.type 下带有变量的数据框列表是(例如):
Dwarf.shrub <- c("Calluna.vulgaris", "Empetrum.nigrum", "Erica.cinerea"...) Graminoid <- c("Agrostis.canina", "Deschampsia.flexuosa", "Holcus.lanatus"...)等。如您所见,每个 veg.type 下有多个变量 - 超过 3 个我已经展示了。merge和left_join对于我需要做的事情,如下所示不起作用。
标签: r calculated-columns