改变数据框中的变量值

时间:2017-09-15 18:27:34

标签: r

我有一个数据框:

id,male,exposure,age,tol
9,0,1.54,tol12,1.79
9,0,1.54,tol13,1.9
9,0,1.54,tol14,2.12
9,0,1.54,tol11,2.23

但是,我希望年龄变量的值不是(11,12,13,14)(tol11,tol12,tol13,tol14)。我试过以下内容,但没有什么区别。

levels(tolerance_wide$age)[levels(tolerance_wide$age)==tol11] <- 11
levels(tolerance_wide$age)[levels(tolerance_wide$age)==tol12] <- 12

任何帮助都将不胜感激。

(来自Singer,Willett的数据)

1 个答案:

答案 0 :(得分:2)

假设您的数据框名为foo

foo$age <- as.numeric(gsub("tol", "", foo$age))

   id male exposure age  tol
1:  9    0     1.54  12 1.79
2:  9    0     1.54  13 1.90
3:  9    0     1.54  14 2.12
4:  9    0     1.54  11 2.23

这里我们使用两个函数:

  • gsub替换字符串中的模式(我们将tol替换为"")。
  • as.numericgsub输出(字符)转换为数字