R 用字符串替换数据框中列的值

R 用字符串替换数据框中列的值,r,dataframe,R,Dataframe,我目前在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

我目前在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

我正在尝试替换环中的值。

也许您可以创建一个向量作为变换表

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]

或者使用
plyr
中的
mapvalues
dat$rings
> 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