R 使用特定参数重新分类数据列
我有一个树列表,其中列出了每棵树的直径(以及许多其他变量)。我正试图简化添加一个新列的过程,该列根据每棵树的直径给出一个直径类,我认为可以通过索引和/或for循环来完成,但我对这两种技能都不擅长。直径范围为0-80厘米。我想把它们分为2-cm类,其中0-0.9之间的树是“0”类,1.0-2.9是“2”类,3-4.9是“4”类,一直到80 cm。以下是我的数据的一个小快照:R 使用特定参数重新分类数据列,r,for-loop,indexing,R,For Loop,Indexing,我有一个树列表,其中列出了每棵树的直径(以及许多其他变量)。我正试图简化添加一个新列的过程,该列根据每棵树的直径给出一个直径类,我认为可以通过索引和/或for循环来完成,但我对这两种技能都不擅长。直径范围为0-80厘米。我想把它们分为2-cm类,其中0-0.9之间的树是“0”类,1.0-2.9是“2”类,3-4.9是“4”类,一直到80 cm。以下是我的数据的一个小快照: Unit Plot Treatment Year Species2 DBHmet 2
Unit Plot Treatment Year Species2 DBHmet
2 1 1 WB Post-treatment PIPO 42.164
3 1 1 WB Post-treatment PIPO 24.384
4 1 1 WB Post-treatment PIPO 16.764
5 1 1 WB Post-treatment PIPO 23.114
6 1 1 WB Post-treatment PIPO 41.148
7 1 1 WB Post-treatment PIPO 4.826
8 1 1 WB Post-treatment PIPO 17.780
10 1 1 WB Pre-harvest PIPO 11.176
11 1 1 WB Pre-harvest PIPO 42.164
12 1 1 WB Pre-harvest PIPO 3.302
13 1 1 WB Pre-harvest PIPO 12.192
如何快速添加一列,将“DBHmet”放入2cm类中,如上所述?从快照中,我假设您有一个数据帧/表,而不是列表。 假设如此,以下将DBHmet值更改为所需的2 cm类:
> data <- data.frame(DBHmet = c(0.0, 0.9, 1.0, 2.9, 3.0, 4.9, 80.0),
+ otherVar = rep("a", 7))
> data$DBHmet_2cm <- floor(((data$DBHmet + 1)/2))*2
> data
DBHmet otherVar DBHmet_2cm
1 0.0 a 0
2 0.9 a 0
3 1.0 a 2
4 2.9 a 2
5 3.0 a 4
6 4.9 a 4
7 80.0 a 80
>数据数据$DBHmet_2cm数据
DBHmet otherVar DBHmet_2cm
10.0 a 0
20.9 a 0
3 1.0 a 2
4.2.9 a 2
5.3.0 a 4
6.4.9 a 4
780.0 a 80
如果您提供了一个示例输入数据和该数据所需的输出,那么就更容易为您提供帮助。通过这种方式,可能的解决方案可以很容易地测试和验证。感谢您的推动。我希望我上面添加的内容能有所帮助。谢谢,这正是我所需要的!我以前不熟悉楼层功能,我将与同事分享!非常感谢。