[問題] data.table 改值

看板R_Language作者 (攸藍)時間10年前 (2014/07/27 18:14), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/2 (看更多)
[問題類型]: 效能諮詢(我想讓R 跑更快) [軟體熟悉度]: 使用者(已經有用R 做過不少作品) [問題敘述]: 最近在嘗試使用data.table跟dplyr,可是在資料整理上, 我一直有個想找一個最簡單的寫法, 我想要根據某一欄去創建一個新的變數, 根據該欄的資訊,進行資料的新增, 請看下面範例,我想要有類似sapply的寫法.... [程式範例]: library(data.table) library(dplyr) DT = data.table(a=rep(LETTERS[c(1:5)],2),b=4:13) DT = mutate(DT, b2 = b) set(DT, i = which(DT$a == "A"), j = "b2", value = as.integer(DT[which(DT$a == "A")]$b * 2)) set(DT, i = which(DT$a == "B"), j = "b2", value = as.integer(DT[which(DT$a == "B")]$b * 3)) DT$b3 = sapply(1:nrow(DT), function(i){ if(DT[i]$a == "A") DT[i]$b = DT[i]$b*2 else if(DT[i]$a == "B") DT[i]$b = DT[i]$b*3 else DT[i]$b }) DT [關鍵字]: 選擇性,也許未來有用 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.164.170.55 ※ 文章網址: http://www.ptt.cc/bbs/R_Language/M.1406456070.A.482.html

07/27 22:12, , 1F
data 有新增欄位的運算子 ':=' 參考看看
07/27 22:12, 1F

07/27 22:12, , 2F
data.table
07/27 22:12, 2F

07/27 23:58, , 3F
可是data.table新增幾乎都是vectorise的運算
07/27 23:58, 3F

07/27 23:59, , 4F
我需要逐個判斷....
07/27 23:59, 4F
文章代碼(AID): #1JrD46I2 (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1JrD46I2 (R_Language)