如何在R中将as.factor的字符串转换为as.numeric?

时间:2017-12-01 01:36:18

标签: r vector numeric

我的数据集如下:

sample tmt key value
1       1   t0  11
1       2   t0  12
..
..
100     4   t100 121

我有大约400行。密钥的值为t0, t01, t03, t100,表示以天为单位的时间,例如。 t0为0天,t01为第1天,t100为第100天。

目前,密钥的结构为as.factor

我需要将密钥转换为as.numeric函数,使其显示为0,1,2...100。对于每个样本,有几个相关的t0,t1s等。有没有一种简单的方法来做到这一点,而无需手动替换所有的t0,t1 ..等等?

1 个答案:

答案 0 :(得分:4)

您可以使用gsub替换。

library(dplyr)

df <- tibble(
  sample = 1:100,
  tmt = 1:100,
  key = as.factor(paste0("t", 1:100)),
  value = rnorm(100)
)

df %>% mutate(key = as.numeric(gsub("t", "", key)))

# # A tibble: 100 x 4
#    sample   tmt   key       value
#     <int> <int> <dbl>       <dbl>
#  1      1     1     1 -1.92796670
#  2      2     2     2  0.32439762
#  3      3     3     3 -1.09627047
#  4      4     4     4 -0.11293941
#  5      5     5     5 -1.33618028
#  6      6     6     6  0.26458634
#  7      7     7     7 -0.31001779
#  8      8     8     8 -0.76220697
#  9      9     9     9  0.09226835
# 10     10    10    10  1.27032132