Re: [問題] 判斷資料值後做資料整理

看板R_Language作者 (天)時間9年前 (2016/09/21 12:37), 9年前編輯推噓2(202)
留言4則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《amygm307 (簡單點ˇ)》之銘言: : 判斷B欄值為0的那一列,為整筆資料的第一列 : 變成 : A B : 1 1 0 : 2 1 5 : 3 3 na : 因為我每筆資料B為0的位置都不一樣 : 目前想到的作法是用if去判斷df$B==0時回傳該值為第幾列 : 然後再刪掉前面資料df[-i,] : 但是我不知道"回傳第幾列"應該怎麼寫 : 拜託各位大大幫幫小妹ˊˋ : 一直找不到有用的解法 1. library(data.table) dt <- data.table(A = c(1,1,1,1,1,3), B = c(3,1,2,0,5,NA)) dt[ , rn := .I][rn >= which(B == 0)] 2. library(dplyr) df <- data.frame(A = c(1,1,1,1,1,3), B = c(3,1,2,0,5,NA)) df %>>% mutate(rn = 1:nrow(.)) %>>% filter(rn >= which(B == 0)) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.137.225 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1474432642.A.0F7.html

09/22 02:02, , 1F
這個會把新手嚇死吧w
09/22 02:02, 1F
有能力就早點掌握好的工具,不用在那浪費時間用那些沒效率的函數 而且大多數新手應該都只是處理表格式資料 類似SQL語法的dplyr很適合直接學習 而data.table會稍難,這個套件新手要摸熟才會需要花不少時間 ※ 編輯: celestialgod (36.233.137.225), 09/22/2016 02:44:15

09/22 12:58, , 2F
現在教別人R都在想要用以前dataframe那一套還是直接新的
09/22 12:58, 2F

09/23 04:58, , 3F
我支持有能力者往新開發的function選擇。
09/23 04:58, 3F

09/23 04:59, , 4F
以效率、易讀性和降低錯誤的方向來看,都很值得學習。
09/23 04:59, 4F
文章代碼(AID): #1NuWw23t (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1NuWw23t (R_Language)