1
如何更改一組因子的關卡名稱?
請檢查F1
的Example df
,F1
是6個等級(0〜5)的因子。如何更改一組因子的等級名稱?
如何將F1
更改爲3個等級(1,2,3)?
例如:如果F1 == 0 or 1
,新的級別名稱是1,如果F1 == 2 or 3
,新的級別名稱是2,如果F1 == 4 or 5
,新的級別名稱是3像Expected Outcome
。
library(plyr)
revalue(df$F1, c("0"="1", "1"="1","2"="2", "3"="2","4"="3", "5"="3"))
# I could do this but if there are tens or hundreds of levels,
# I will need to do this one by one, there must be a more convenient way.
例DF
Volume Weight F1 F2
1: 0.5367 0.5367 0 1
2: 0.8645 0.8508 0 0
3: 0.8573 0.8585 0 0
4: 1.1457 1.1413 1 0
5: 0.8573 0.8568 1 0
6: 0.5694 0.5633 1 1
7: 1.2368 1.2343 2 0
8: 0.9662 0.9593 2 1
9: 1.4850 1.3412 2 0
10: 1.4850 1.3995 2 0
11: 1.1132 1.1069 3 1
12: 1.4535 1.3923 3 0
13: 1.0437 1.0344 3 1
14: 1.1475 1.1447 4 1
15: 1.1859 1.1748 4 0
16: 1.1859 1.1735 4 0
17: 1.1859 1.1731 4 0
18: 1.1557 1.1552 5 1
19: 1.1749 1.1731 5 0
20: 1.1749 1.1552 5 0
預期結果
Volume Weight F1 F2
1: 0.5367 0.5367 1 1
2: 0.8645 0.8508 1 0
3: 0.8573 0.8585 1 0
4: 1.1457 1.1413 1 0
5: 0.8573 0.8568 1 0
6: 0.5694 0.5633 1 1
7: 1.2368 1.2343 2 0
8: 0.9662 0.9593 2 1
9: 1.4850 1.3412 2 0
10: 1.4850 1.3995 2 0
11: 1.1132 1.1069 2 1
12: 1.4535 1.3923 2 0
13: 1.0437 1.0344 2 1
14: 1.1475 1.1447 3 1
15: 1.1859 1.1748 3 0
16: 1.1859 1.1735 3 0
17: 1.1859 1.1731 3 0
18: 1.1557 1.1552 3 1
19: 1.1749 1.1731 3 0
20: 1.1749 1.1552 3 0
如果有數十或數百個關卡,那麼如何重新編碼它們的規則是什麼?最低級別爲'1',然後每兩個值合併在一起,所以'2 + 3','4 + 5','6 + 7'等等?如果問題是關於如何將其擴展到大量的層次,則需要解釋規則。 – Marius
'df $ F1 < - 因子(1 + as.numeric(df $ F1)%/%2)' –
或者:'df [,F1:= floor(F1/2)+1]' – Jaap