2017-09-15 83 views
1

我有一個數據幀:改變數據幀變量值

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 

任何幫助,將不勝感激。

+0

如果我的解決方案幫助解決這個問題,你能接受嗎 – PoGibas

回答

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.numeric改造gsub輸出(即字符)到數字
+2

或'sub',因爲我們只是在做一次無妨。 –