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

时间:2017-03-16 06:42:34

标签: 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        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

我正在尝试替换戒指中的值。

1 个答案:

答案 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