全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4450 6
2015-09-30
我想实现的就是每一个缺失值用其已观测到的值中随机抽取一个值进行填补,比如变量var1 一共有6个观测(1  2  .  4 . 6)两个缺失值,其中每个缺失值 都在已观测值(1 2 4 6)中随机抽取一个进行填补,想请教各位高手怎么实现,我自己有一个很麻烦的程序,运行很慢,所以想请教大家怎样能够简单一点


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-10-1 02:41:26
如果你的数据集观测值很多的话建议这样做

复制代码




如果数据量不是很多的话 可以这样

复制代码



注意所有的choose后面的数字以及 array的数字 都是非空数据的数量
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-10-1 08:24:24
sas那个石家庄人 发表于 2015-10-1 02:41
如果你的数据集观测值很多的话建议这样做
choose 函数用得很好,第一次见到。不过感觉第一个程序不能工作啊。

我的设想:将非missing的数据输出为另一个dataset, 从中抽样2个数据,然后补回原来的数据中
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-10-1 08:39:35
teqel 发表于 2015-10-1 08:24
choose 函数用得很好,第一次见到。不过感觉第一个程序不能工作啊。

我的设想:将非missing的数据输出 ...
我第一个程序可能有些地方没有写好 不过和你的设想思路是一致的

data two就是包含非missing的数据集

data three就是把data two里面非空的4个值变成一个单独的observation (choose1 choose2 choose3 choose4)

最后一步就是把这一列 (choose1 choose2 choose3 choose4)合并到原始数据的每一个观测值的右边
如果是missing就从这四个里随机选一个
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-10-1 08:42:14
sas那个石家庄人 发表于 2015-10-1 02:41
如果你的数据集观测值很多的话建议这样做
试了一下,可以工作。但是如果数据很多,会很慢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-10-1 08:46:32
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群