全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1490 5
2023-03-15

二维码

扫码加我 拉你入群

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

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

全部回复
2023-3-15 14:32:26
你可以把转置过程步中的by当作横坐标x,把id当作纵坐标y,在一个表格中(x,y)只能填入一个值。在一个by组下,已经有一个值被填到(x,y)这个坐标下,相同的id值第二次出现意味着在还有一个值没有地方填了。
解决这个问题有两个办法,一个是添加一个顺序变量或其他变量在by组内,使原本同by组同id的值分到两个by组下;第二个是去重,根据需求只保留同by同id的两条观测中的一条。
二维码

扫码加我 拉你入群

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

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

2023-3-15 22:08:18
freyabc 发表于 2023-3-15 14:32
你可以把转置过程步中的by当作横坐标x,把id当作纵坐标y,在一个表格中(x,y)只能填入一个值。在一个by组下 ...
多谢回复,已经找到原因了,是我的变量名是中文导致的
二维码

扫码加我 拉你入群

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

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

2023-3-16 10:36:50
lebranium 发表于 2023-3-15 22:08
多谢回复,已经找到原因了,是我的变量名是中文导致的
我试了一下,sas会自动将中文字符转换为两个下划线符号,id的变量值是中文,且中文长度一致的情况下会转换为相同长度的下划线,所以会造成id值判定为重复的情况。
二维码

扫码加我 拉你入群

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

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

2024-4-1 05:07:28
为了解决这个问题,你可以采取以下步骤:

检查数据:查看数据,确认是否真的存在重复的ID值。你可以使用PROC SORT配合NODUPKEY选项对数据进行排序和去重,或者使用PROC FREQ、PROC SQL等过程检查ID值的唯一性。

数据清洗:如果发现有重复的ID值,需要决定如何处理这些重复记录。有时候,这可能意味着合并数据行或者删除重复的记录。

重组数据:如果由于业务需求ID值在同一个BY组中确实可以重复出现,你可能需要重新考虑转置数据的方式。例如,可能需要创建一个新的变量来确保每个ID和BY组的组合是唯一的,或者使用其他统计或数据重构技术来满足分析需求。

使用PROC SQL:有时候,可以用PROC SQL来代替PROC TRANSPOSE进行数据的转置,PROC SQL提供了更大的灵活性来处理复杂的数据重组问题。
二维码

扫码加我 拉你入群

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

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

栏目导航
热门文章
推荐文章

说点什么

分享

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