Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将信息组合成一个部门向量

将信息组合成一个部门向量
EN

Stack Overflow用户
提问于 2019-06-05 15:36:29
回答 2查看 109关注 0票数 0

我想通过创建一个向量来总结一个数据集,该向量提供了在哪些部门中找到id的信息。例如,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data test;
    input id dept $;
    datalines;
    1 A
    1 D
    1 B
    1 C
    2 C
    3 D
    4 A
    5 C
    5 D
    ;
run;

我想要

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
id dept_vect
1  1111
2  0010
3  0001
4  1000
5  1001

dept_vect元素的位置是按字母顺序排列的。因此,第一个位置中的'1‘表示id在第A部分中找到,而'1’在第二个位置表示id在B部门中找到。‘A '0’表示在部门中找不到id。

我可以用蛮力法解决这个问题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
proc transpose data = test out = test1(drop = _NAME_);
by id;
var dept;
run;

data test2;
  set test1;
  array x[4] $ col1-col4;
  array d[4] $ d1-d4;

  do i = 1 to 4;
        if not missing(x[i]) then do;
              if x[i] = 'A' then d[1] = 1;
                 else if x[i] = 'B' then d[2] = 1;     
                 else if x[i] = 'C' then d[3] = 1;
                 else if x[i] = 'D' then d[4] = 1;
              end;
        else leave;
    end;

  do i = 1 to 4;
       if missing(d[i]) then d[i] = 0;
  end;

  dept_id = compress(d1) || compress(d2) || compress(d3) || compress(d4);

  keep id dept_id;
 run;

这是可行的,但也有一些问题。要使col4出现,我至少需要在所有部门中找到一个id,但是可以通过创建一个虚拟id来修复这个id,以便在所有部门上找到id。但是主要的问题是这段代码不健壮。是否有一种方法对此进行编码,使其能够适用于任意数量的部门?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-05 17:26:08

  1. 添加一个1以获得一个计数变量
  2. 转置
  3. 将缺失替换为0
  4. 使用CATT()创建所需的结果。 数据有;输入id data=test $;count = 1;datalines;1A1D1B1C2C3D4A5C5D;运行;proc转置data=test out=wide prefix=dept;by id;id dept;var计数;运行;数据需要;set wide;数组_d(*) dept:;执行i=1到dim(_d);如果缺少( _d(i) ),则_d(I)= 0;结束;end= catt(of _d(*));运行;
票数 1
EN

Stack Overflow用户

发布于 2019-06-06 07:32:40

也许TRANSREG能帮上忙。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data test;
    input id dept $;
    datalines;
    1 A
    1 D
    1 B
    1 C
    2 C
    3 D
    4 A
    5 C
    5 D
    ;
run;
proc transreg;
   id id;
   model class(dept / zero=none);
   output design out=dummy(drop=dept);
   run;
proc print;
   run;
proc summary nway;
   class id;
   output out=want(drop=_type_) max(dept:)=;
   run;
proc print;
   run;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56469317

复制
相关文章
如何在iOS 7.0中隐藏状态栏
使用Cordova做了一个小项目,在原来iOS6的时候显示挺好,升级为iOS7后,每次App启动后都会显示状态栏,而且状态栏和App的标题栏重叠在一起,非常难看,因此需要将状态栏隐藏起来。
大江小浪
2018/07/24
1.2K0
如何在iOS 7.0中隐藏状态栏
zblog怎么在移动端显示/隐藏侧栏模块
关于zblog主题模板手机移动端针对不同主题采用了不同的方案,有些是默认显示,有些不显示侧栏,总归没有一个完美的解决方案,所以今天就抽空水一篇文章,教大家怎么显示或者隐藏侧栏模板的内容。宁静致远主题没有侧栏,所以我们以这个主题模板为例,灌水开始。。。
李洋博客
2021/06/15
1.1K0
DrawerLayout侧滑栏
第一步:这是最基本的一个布局文件,里面有主界面布局,下面是包含一个button的按钮;
全栈程序员站长
2022/09/13
6670
如何在linux中重命名文件和目录
重命名文件和目录是你经常需要在Linux系统上执行的最基本任务之一。 重命名单个文件很简单,但一次重命名多个文件可能是一个挑战,特别是对于刚接触Linux的用户而言。你可以使用GUI文件管理器或命令行终端重命名文件。 在本教程中,我们将向你展示如何使用mv和rename命令重命名文件和目录。 使用mv命令重命名文件 mv命令(移动时间短)用于将文件从一个位置重命名或移动到另一个位置。mv命令的语法如下: mv [OPTIONS] source destination source可以是一个或多个文件或目录
入门笔记
2022/06/02
3.9K0
如何在Linux中删除目录的所有文件?
在Linux操作系统中,删除目录的所有文件是一项常见任务。无论是清理不需要的文件还是准备删除整个目录,正确地删除目录下的所有文件是重要的。本文将详细介绍如何在Linux中删除目录的所有文件,包括使用常见的命令和技巧进行操作。
网络技术联盟站
2023/06/08
17.2K0
如何在Linux中删除目录的所有文件?
如何在Ansible中复制多个文件和目录
Ansible 通过 copy 和 fetch 模块提供了基本的复制文件和目录的功能.
东风微鸣
2022/04/21
17.3K2
如何在Ansible中复制多个文件和目录
如何在Python中删除(删除)文件和目录
本教程说明了如何使用os,pathlib和shutil模块中的功能删除文件和目录。
用户5005176
2021/08/10
13.1K0
手机侧滑导航栏
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" /> <meta name="apple-touch-fullscreen" content="yes" /> <meta name="apple-m
用户3055976
2018/09/12
3.2K0
如何在git中删除指定的文件和目录
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/113172.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/07
3.5K0
网页固定侧栏的做法
固定侧边的做法有很多种,今天为大家介绍一种非常简单的做法。整个html文档只有23行代码就搞定了。
业余草
2019/01/21
1.7K1
再议Linux文件、目录的隐藏属性(lsattr、chattr)
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢。
耕耘实录
2018/12/20
2.9K0
侧栏恋爱计时代码分享
原文地址:https://blog.ascv.cn/archives/55.html
傲绝
2023/03/06
3810
侧栏恋爱计时代码分享
python 中目录、文件
2) open("test.txt",w)           直接打开一个文件,如果文件不存在则创建文件
py3study
2020/01/10
1.3K0
隐藏任务栏显示
我用ModifyStyleEx(WS_EX_APPWINDOW,0);隐藏了程序在任务栏的显示.
全栈程序员站长
2022/09/09
1.9K0
使用java8API遍历过滤文件目录及子目录及隐藏文件
本文中为大家介绍使用java8 Stream API逐行读取文件,以及根据某些条件过滤文件内容
字母哥博客
2020/09/23
1.4K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
28.8K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
执行du命令时统计隐藏文件和目录
在Linux和Mac下,执行du -sh 来统计目录大小时,默认不统计以点开头的文件或者目录,比如.local,因此得到不准确的统计结果。从这里知道,要统计隐藏文件和目录,可以这么用:
王云峰
2023/10/23
1.3K0
侧栏友链通讯录卡片
感觉好久好久没有写友链魔改和侧栏魔改的教程了,之前都是在捣鼓各种各样的API插件。然后我这次写的时候发现,我本地的widget文件夹里居然就剩下SAO相关的侧栏卡片pug文件了。看来我插件化的还是很勤快的嘛。不过SAO UI PLAN相关的内容还不打算做插件化,一方面我当初写的代码还比较差,一方面最近看到yamapink用vue封装的SAO UI,顿时萌生了我也要用vue来封装我所有的魔改教程的兴趣。
Akilar
2022/11/28
4360
侧栏友链通讯录卡片
点击加载更多

相似问题

复制dpdk pktgen为多个源地址读取的PCAP数据包

12

pktgen不能在ovs dpdk场景中发送数据包。

13

通过packetgen dpdk发送pcap

11

DPDK PktGen的构建问题

18

如何在dpdk-pktgen中发送大型帧

111
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文