我目前在r中有一个数据框,其中一列包含1-20的值。我需要替换值0-4 - > A,5-9 - > B,10-14 - > C ....等等。什么是实现这一目标的最佳方式?
这是目前数据框的第一部分:
sex length diameter height wholeWeight shuckedWeight visceraWeight shellWeight rings
1 2 0.455 0.365 0.095 0.5140 0.2245 0.1010 0.1500 15
2 2 0.350 0.265 0.090 0.2255 0.0995 0.0485 0.0700 7
3 1 0.530 0.420 0.135 0.6770 0.2565 0.1415 0.2100 9
4 2 0.440 0.365 0.125 0.5160 0.2155 0.1140 0.1550 10
5 0 0.330 0.255 0.080 0.2050 0.0895 0.0395 0.0550 7
6 0 0.425 0.300 0.095 0.3515 0.1410 0.0775 0.1200 8
7 1 0.530 0.415 0.150 0.7775 0.2370 0.1415 0.3300 20
8 1 0.545 0.425 0.125 0.7680 0.2940 0.1495 0.2600 16
9 2 0.475 0.370 0.125 0.5095 0.2165 0.1125 0.1650 9
10 1 0.550 0.440 0.150 0.8945 0.3145 0.1510 0.3200 19
11 1 0.525 0.380 0.140 0.6065 0.1940 0.1475 0.2100 14
12 2 0.430 0.350 0.110 0.4060 0.1675 0.0810 0.1350 10
我正在尝试替换戒指中的值。
答案 0 :(得分:1)
也许你可以创建一个矢量作为变换表。
tran_table <- rep(c("A","B","C","D"), rep(5,4))
names(tran_table) <- 1:20
test_df <- data.frame(
ring = sample(1:20, 20)
)
test_df$ring <- tran_table[test_df$ring]
结果是:
> test_df
ring
1 A
2 D
3 B
4 A
5 A
6 C
7 B
8 D
9 B
10 A
11 B
12 D
13 C
14 A
15 C
16 C
17 B
18 D
19 C
20 D