楼主: 武高峰
4899 11

[问答] 紧急求助:硕士论文-缺失数据赋值时的编程 [推广有奖]

  • 0关注
  • 0粉丝

小学生

71%

还不是VIP/贵宾

-

威望
0
论坛币
28 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
135 点
帖子
6
精华
0
在线时间
11 小时
注册时间
2009-5-1
最后登录
2013-9-2

楼主
武高峰 发表于 2009-8-16 16:34:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
补充:因为有几万条数据,所以不知道有没有谁知道用if算法命令怎么去编写的?
           大概的想法是:
           1. 如果A列该行值不为空,那么A'列该值等于A列该值。
           2. 如果A列该行值为空,那么从A列该行分别向上向下取一个:
                      -  如果发现有一个不为空,那么取该值;
                      -  如果两个均不为空,那么取两值平均值;
                      -  如果两个均为空,那么继续想上向下取,重复该循环。

我现在具体的命令还不会,比如如何去取第i列第j行的值等,希望大家帮助,谢谢!


具体问题如下:
某一列数据有空缺值,我希望利用transform->compute命令给空缺的部分赋值为该列中离该数据最近的值,如:
--------------------
         A       A'
1       3       3
2       2       2
3                2
4                6
5       6       6
6                5
7       4       4
-----------------
A列的第3,4,6行分别空缺,我想在A'赋值时,第3行赋值为2,第4行赋值为6,第6行赋值为(6+4)/2=5。

请问大牛应该怎么操作,多谢!
二维码

扫码加我 拉你入群

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

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

关键词:紧急求助 缺失数据 硕士论文 急求助 transform 求助 数据 SPSS 赋值

回帖推荐

ttewwcqu 发表于9楼  查看完整内容

你可以用 Tranform -- Replace Missing Values .. [对不起,没有中文菜单], 把所需要补值的变量移到 New Variable(s) 框中,然后在 Name and Method 下的 Method 下拉菜单中选 Mean by nearby points,这就是你所想要做的。其他几个选项自己确认一下即可。 不过,不知你的缺失情况如何,如果不多(你的样本很大),估计没有大问题。否则,你应该用 Analyze 下的 Missing Value Analysis... 做适当的 插补/替代,一般推荐 EM 法如 ...

本帖被以下文库推荐

沙发
武高峰 发表于 2009-8-17 16:43:35
1# 武高峰

自己来顶。

因为论文处理数据要用到,拜托大家有知道的请多指教拉,谢谢!

藤椅
pxg_1981 发表于 2009-8-17 22:37:33
直接输入就可以了

板凳
akwang 发表于 2009-8-18 21:49:43
3# pxg_1981    好像只能这样
80 字节以内
不支持自定义 Discuz! 代码

报纸
武高峰 发表于 2009-8-25 12:49:01
谢谢答复!
不过有好几万条数据,而且还不止一次用到这样的赋值方法。
3# pxg_1981

地板
susng 发表于 2009-8-26 19:51:29
你试试transform里面的compute菜单,根据已有变量产生新变量,而且可以设置你要的if条件

7
武高峰 发表于 2009-8-27 16:23:04
非常谢谢你的回复~

我尝试了用transform下的compute命令。
关键是我不知道if下面的取值操作怎么写,我知道怎么判断同一行不同列是否为空,但是同一列不同行这个是否为空就不知道。
找了一些相关的资料,也没有找到,也就是我全文里说的取某行某列值的命令。。

7# susng

8
武高峰 发表于 2009-8-29 13:27:11
up.~

1# 武高峰

9
ttewwcqu 发表于 2009-8-30 09:25:47
你可以用 Tranform -- Replace Missing Values .. [对不起,没有中文菜单], 把所需要补值的变量移到 New Variable(s) 框中,然后在 Name and Method 下的 Method 下拉菜单中选 Mean by nearby points,这就是你所想要做的。其他几个选项自己确认一下即可。

不过,不知你的缺失情况如何,如果不多(你的样本很大),估计没有大问题。否则,你应该用 Analyze 下的 Missing Value Analysis... 做适当的 插补/替代,一般推荐 EM 法如果用 SPSS16 或更早的版本。从SPSS 17开始,SPSS 也可以作多重替代了,即 Multiple Imputation,可以一试。不过几万条数据的话,恐怕还是单次替代比较实际,如果相临值替代不妥当的话。
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

10
武高峰 发表于 2009-8-30 17:13:40
11# ttewwcqu

你好,非常感谢你的答复!
其实这个方法在我最开始的时候有用过,replace的method下几个选项:"serial means", "mean of nearby points", "median of nearby points"等。
但是所有的都不行。
我从几万条中选了几百条出来,大概有30%左右是缺失的,就以mean of nearby points为例,不管我把span设为2还是多少,最后出来的都是把整列的平均值代替缺失值,也就是所有缺失值最终都被同一个值代替。
很郁闷。。。
这个数据处理不出来,后面处理就没法进行。。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-23 02:39