看板 R_Language 關於我們 聯絡資訊
[問題類型]: 效能諮詢(我想讓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
acecc:data 有新增欄位的運算子 ':=' 參考看看 07/27 22:12
acecc:data.table 07/27 22:12
celestialgod:可是data.table新增幾乎都是vectorise的運算 07/27 23:58
celestialgod:我需要逐個判斷.... 07/27 23:59