作者andrew43 (讨厌有好心推文後删文者)
看板R_Language
标题Re: [问题] 随机删除每列资料上的几个栏(cell)
时间Thu Oct 8 18:01:26 2015
# 制造假资料
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://webptt.com/cn.aspx?n=bbs/R_Language/M.1444298495.A.6EB.html
1F:→ sinclairJ: 谢谢大大~已解决 10/14 11:20