看板 R_Language 關於我們 聯絡資訊
# 製造假資料 n.row <- 200 ; n.col <- 50 mat <- matrix(1 : (n.row * n.col), n.row, byrow = T) # matrix 轉 list x <- split(mat, rep(1:n.row, n.col)) # 利用 lapply() 逐列工作 # 工作內容是在 1:n.col 中抽 round(Uniform(20,40)) 個數字 # 沒抽中的就不要了 # 回傳還是個 list lapply(x, function(k){ k[sample(1:50, round(runif(1,1,20)))] }) ※ 引述《sinclairJ (SunnyGymBoy)》之銘言: : 實際資料為200列*50欄 : 要對每列資料隨機刪除該列的幾個欄 : 例如將第一列(筆)資料的第5,34,41欄刪除 : 將第二列(筆)資料的第4,25,36,49,50欄刪除 : 將第三列(筆)資料的第28,39欄刪除....到第兩百列 : 每列(筆)資料刪除的欄數目和位置都是隨機的,因此每列(筆)都不一樣,所以最後20 : 0筆資料,其每筆所剩的欄位都會不太一樣 : (刪掉的欄位也不用na取代) : 這邊有個示意圖舉例 : (刪除前:3*10維度) : 20,14,63,15,74,95,25,10,41,12 : 25,47,80,96,15,44,08,35,18,30 : 18,36,59,54,14,22,70,98,13,24 : (刪除後希望變這樣) : 20,14,15,74,95,10,41 : 25,80,96,15,44,08,18,30 : 18,59,54,14,70,24 : 謝謝各位前輩的指導 : 小弟感激不進 : 若問題描述的不夠清楚我再補充 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.128.117.75 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1444298495.A.6EB.html
sinclairJ: 謝謝大大~已解決 10/14 11:20