AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-1083757

NewUsr_stat's questions

Martin Hope
NewUsr_stat
Asked: 2025-04-10 20:58:26 +0800 CST

通过 ID 标记重复日期

  • 2

假设有以下内容:

data DB;
  input ID :$20. Admission :date09. Discharge :date09.; 
  format Admission date9. Discharge date9.;
cards;
0001 13JAN2017 25JAN2017 
0001 13JAN2017 25JAN2017 
0001 13JAN2017 25JAN2017
0001 11MAR2017 16MAY2017 
0001 30JAN2019 04MAR2019 
0002 11SEP2014 15SEP2014 
0002 28DEC2014 03JAN2015 
0002 28DEC2014 03JAN2015 
;


有没有办法获得以下内容?

data DB1;
  input ID :$20. Admission :date09. Discharge :date09. Index; 
  format Admission date9. Discharge date9.;
cards;
0001 13JAN2017 25JAN2017 1
0001 13JAN2017 25JAN2017 .
0001 13JAN2017 25JAN2017 .
0001 11MAR2017 16MAY2017 1
0001 30JAN2019 04MAR2019 1
0002 11SEP2014 15SEP2014 1
0002 28DEC2014 03JAN2015 1
0002 28DEC2014 03JAN2015 .
;

换句话说,我想按 ID 为除第一个日期之外的所有重复日期添加一个包含缺失值的索引列。

sas
  • 1 个回答
  • 31 Views
Martin Hope
NewUsr_stat
Asked: 2025-01-08 21:31:54 +0800 CST

仅对重复日期的值进行求和

  • 5

当每个 ID 出现重复日期时,如何才能对变量的值求和?

假设有:

data have;
  input ID :$20. Date :date09. Value; 
  format Date date9. Value;
cards;
0001 13JAN2017 0
0001 22FEB2017 1
0001 22FEB2017 1
0001 30JAN2019 0
0002 28DEC2014 1 
0002 28DEC2014 2
0002 28DEC2014 1
0002 28DEC2014 0
0003 15DEC2021 0
0003 16DEC2021 1
;


期望的输出应该是:

data want;
  input ID :$20. Date :date09. Value; 
  format Date date9. Value;
cards;
0001 13JAN2017 0
0001 22FEB2017 2
0001 30JAN2019 0
0002 28DEC2014 4
0003 15DEC2021 0
0003 16DEC2021 1
;

先感谢您

sas
  • 1 个回答
  • 19 Views
Martin Hope
NewUsr_stat
Asked: 2024-12-20 23:34:58 +0800 CST

仅当变量取特定值时,才用另一个数据集中的值替换数据集中的值

  • 6

假设有以下数据集:

data have;
  input ID :$20. Admission :date09. Discharge :date09. Index Variable1 Variable2; 
  format Admission date9. Discharge date9.;
cards;
0001 13JAN2015 20JAN2015 1  2  4  
0001 21FEB2015 31DEC2015 0  .  2
0001 21FEB2015 31DEC2015 0  3  .
0001 01JAN2019 31DEC2019 0  6  9
0002 01JAN2015 31DEC2015 0  2  .
0002 01JAN2019 31OCT2019 1  .  2
0002 01JAN2019 31OCT2019 0  .  2
;

然后,我还有另一个看起来像这样的数据集,来自其他计算:


data have1;
  input ID :$20. Admission :date09. Discharge :date09. Index Variable1 Variable2; 
  format Admission date9. Discharge date9.;
cards;
0001 13JAN2015 20JAN2015 1  6  8
0002 01JAN2019 31OCT2019 1  4  2
;

有没有办法获得以下内容?

data have2;
  input ID :$20. Admission :date09. Discharge :date09. Index Variable1 Variable2; 
  format Admission date9. Discharge date9.;
cards;
0001 13JAN2015 20JAN2015 1  6  8 
0001 21FEB2015 31DEC2015 0  .  .
0001 21FEB2015 31DEC2015 0  .  .
0001 01JAN2019 31DEC2019 0  .  .
0002 01JAN2015 31DEC2015 0  .  .
0002 01JAN2019 31OCT2019 1  4  2
0002 01JAN2019 31OCT2019 0  .  .
;

换句话说,我想用 have1(其中 Index = 1)中的值替换 have 中的值。have 中的其余部分应设置为“.”,以表示 have3。变量总数:为 50。为简单起见,这里仅显示 2 个。

先感谢您

sas
  • 1 个回答
  • 12 Views
Martin Hope
NewUsr_stat
Asked: 2024-12-17 20:46:04 +0800 CST

通过其他变量统一一个变量的值

  • 5

假设有以下内容:

data have;
  input ID $ (Start End) (:date.) Place $;
  format start end date9.;
cards;
0001 13JAN2015 20JAN2015 .
0001 13JAN2015 20JAN2015 1
0001 13JAN2015 20JAN2015 .
0001 21JAN2015 31DEC2015 .
0001 01JAN2018 31DEC2018 .
0001 01JAN2019 31DEC2019 .
0002 01JAN2015 31DEC2015 1
0002 01JAN2015 31DEC2015 .
0002 01JAN2015 31DEC2015 1
;

有没有办法获得以下内容?


data have1;
  input ID $ (Start End) (:date.) Place $;
  format start end date9.;
cards;
0001 13JAN2015 20JAN2015 1
0001 13JAN2015 20JAN2015 1
0001 13JAN2015 20JAN2015 1
0001 21JAN2015 31DEC2015 .
0001 01JAN2018 31DEC2018 .
0001 01JAN2019 31DEC2019 .
0002 01JAN2015 31DEC2015 1
0002 01JAN2015 31DEC2015 1
0002 01JAN2015 31DEC2015 1
;

换句话说,我需要根据 ID 和 Start-End 来统一“Place”变量值 = 1。

先感谢您

sas
  • 2 个回答
  • 14 Views
Martin Hope
NewUsr_stat
Asked: 2024-12-16 22:08:17 +0800 CST

按 ID 和变量求和

  • 5

我如何通过 ID 对一组变量求和?

假设有以下内容:

data DB;
  input ID :$20. Value1 Value2 Value3; 
cards;
0001 33    .     .
0001  .   22     .
0001  .    .     .
0001  .    .     6
0002  .    32    .
0002  .    .     4
0003  .    2     90
0003  3    .     .
;

有没有办法获得以下内容?

data DB1;
  input ID :$20. Value1 Value2 Value3  Total; 
cards;
0001 33    .     .    61
0001  .   22     .    .
0001  .    .     .    .
0001  .    .     6    .
0002  .    32    .   36
0002  .    .     4    .
0003  .    2     90  95
0003  3    .     .    .
;

总和应该放在每个 ID 的第一次出现/位置处。

先感谢您

sas
  • 1 个回答
  • 27 Views
Martin Hope
NewUsr_stat
Asked: 2024-11-24 00:56:25 +0800 CST

仅保留变量的第一个值

  • 5

假设有以下内容:

data DB;
  input ID :$20. Admission :date09. Discharge :date09. Index; 
  format Admission date9. Discharge date9.;
cards;
0001 13JAN2015 20JAN2015 1
0001 21FEB2015 31DEC2015 1
0001 01MAR2018 30SEP2018 .
0002 01JAN2015 31MAR2015 1
0002 01MAY2015 31OCT2015 1
0003 08FEB2014 10MAR2014 1
0004 04MAY2016 10MAY2016 1 
0004 13JUN2016 15NOV2016 1
0004 09DEC2016 31DEC2016 1
;

有没有办法获得以下内容?

data DB1;
  input ID :$20. Admission :date09. Discharge :date09. Index; 
  format Admission date9. Discharge date9.;
cards;
0001 13JAN2015 20JAN2015 1
0001 21FEB2015 31DEC2015 .
0001 01MAR2018 30SEP2018 .
0002 01JAN2015 31MAR2015 1
0002 01MAY2015 31OCT2015 .
0003 08FEB2014 10MAR2014 1
0004 04MAY2016 10MAY2016 1 
0004 13JUN2016 15NOV2016 .
0004 09DEC2016 31DEC2016 .
;

含义:如果某个患者的索引有重复,则只保留第一个,其他的应设置为缺失。

先感谢您

sas
  • 1 个回答
  • 14 Views
Martin Hope
NewUsr_stat
Asked: 2024-10-28 23:27:39 +0800 CST

根据所取的值更新 Index 变量

  • 5

假设有以下数据集

data DB;
  input ID :$20. morbidity;
cards;
0001   1 
0001   1
0001   0   
0001   2  
0002   2 
0002   0
0002   2;
run;

有没有办法获得以下内容?

data DB1;
  input ID :$20. morbidity;
cards;
0001   1 
0001   1
0001   0   
0001   0  
0002   2 
0002   0
0002   2;
run;

换句话说,如果患者至少有一次发病率 = 1,则其余时间发病率 = 2,它应该变为 0。

先感谢您。

最好的

sas
  • 1 个回答
  • 25 Views
Martin Hope
NewUsr_stat
Asked: 2024-10-21 23:39:30 +0800 CST

将 yyyymm 转换为 sas date9 并拆分

  • 5

我有像“202407”这样的日期。我怎样才能将它们转换为 Sas date9. 格式以获得“JUL2024”?是否还有一种方法可以将月份“7”和年份“2024”分成两个新变量?

先感谢您。

最好的

sas
  • 1 个回答
  • 22 Views
Martin Hope
NewUsr_stat
Asked: 2024-09-14 14:39:02 +0800 CST

比较两个数据集之间的两个变量,并根据比较结果创建一个新变量

  • 5

假设有以下数据集:

data DB;
  input ID :$20. Admission :date09. Discharge :date09. Variable;
cards;
166  16FEB2019 26FEB2019  1
170  13JAN2017 25JAN2017  0
170  22FEB2017 07MAR2017  1
170  27APR2017 16MAY2017  1
170  30JAN2019 04MAR2019  0
313  03MAR2016 10MAR2016  1
; 
run;

data DB1;
  input ID :$20. Admission :date09. Discharge :date09. Variable_;
cards;
166 16FEB2019 26FEB2019 1
166 16FEB2019 26FEB2019 1
166 16FEB2019 26FEB2019 1
166 16FEB2019 26FEB2019 1
166 16FEB2019 26FEB2019 1
166 16FEB2019 26FEB2019 1
170 22FEB2017 07MAR2017 0
170 13JAN2017 25JAN2017 0
170 30JAN2019 04MAR2019 1
170 13JAN2017 25JAN2017 0 
170 30JAN2019 04MAR2019 1
170 27APR2017 16MAY2017 1
170 27APR2017 16MAY2017 1
170 27APR2017 16MAY2017 1
170 27APR2017 16MAY2017 1
170 27APR2017 16MAY2017 1
313 03MAR2016 10MAR2016 0
313 03MAR2016 10MAR2016 0
313 03MAR2016 10MAR2016 0
; 
run;

有没有办法将 DB1 中的 Variable_ 值与 DB 中相应日期和 BY ID 的变量进行比较?正如您在 DB1 中看到的那样,一些日期被复制,并且当发生这种情况时,Variable_ 的值也被复制,因此在复制日期时不可能有 1 或 0,而始终是 1 或 0。所需的输出应该是:

data DB2;
  input ID :$20. Admission :date09. Discharge :date09. Variable New_Var;
cards;
166  16FEB2019 26FEB2019  1 0
170  13JAN2017 25JAN2017  0 0
170  22FEB2017 07MAR2017  1 0
170  27APR2017 16MAY2017  1 0
170  30JAN2019 04MAR2019  0 1
313  03MAR2016 10MAR2016  1 0
; 
run;

换句话说,应该在 DB 中创建一个名为“New_Var”的新变量,仅当 DB1 中的 Variable_ = 1 且 DB 中的 Variable = 0 时,该变量才等于 1。

先感谢您

sas
  • 1 个回答
  • 25 Views
Martin Hope
NewUsr_stat
Asked: 2024-09-12 22:50:18 +0800 CST

根据之前的日期更新变量的实际记录

  • 5

假设有以下数据集:

data DB;
  input ID :$20. Admission :date09. Discharge :date09. morbidity;
  format Admission date9. Discharge date9.;
cards;
0001  13JAN2017 25JAN2017  1 
0001  13JAN2017 25JAN2017  1
0001  22FEB2018 03MAR2018  0   
0001  30JAN2019 04MAR2019  0  
0002  01DEC2018 14DEC2018  0 
0002  25DEC2018 02JAN2019  1 
0002  25NOV2020 03DEC2020  0 
0003  09JAN2016 25JAN2016  0 
0003  29JAN2018 12FEB2018  0 
...;

发病率 = 1 表示发病发生在该日期。如果日期重复,则如果发病则为 1,否则为 0。有没有办法获取以下数据集?



data DB1;
  input ID :$20. Admission :date09. Discharge :date09. morbidity new_morbidity;
  format Admission date9. Discharge date9.;
cards;
0001  13JAN2017 25JAN2017  1  1 
0001  13JAN2017 25JAN2017  1  1
0001  22FEB2018 03MAR2018  0  1   
0001  30JAN2019 04MAR2019  0  1  
0002  01DEC2018 14DEC2018  0  0 
0002  25DEC2018 02JAN2019  1  1 
0002  25NOV2020 03DEC2020  0  1 
0003  09JAN2016 25JAN2016  0  0 
0003  29JAN2018 12FEB2018  0  0 
...;

换句话说,对于每个日期、每个 ID(患者),如果发病率发生在实际日期之前,则如果发病率 = 0,则实际日期应该具有 new_morbidity = 1。否则,当然,如果发病率已经 = 1,则将具有 new_morbidity= 1。逐行、逐日地浏览患者的历史记录。

有人能帮帮我吗?我不知道如何管理实际日期与之前日期的比较。

先感谢您

sas
  • 1 个回答
  • 25 Views
Martin Hope
NewUsr_stat
Asked: 2024-05-26 17:20:17 +0800 CST

从 SAS 格式的日期中删除日期

  • 6

我有一个包含 SAS 格式日期的数据集,例如:01OCT2019。有没有办法从日期中删除“01”?我尝试使用monyy7格式化日期。但它不起作用。

先感谢您。

最好的

sas
  • 1 个回答
  • 15 Views
Martin Hope
NewUsr_stat
Asked: 2024-05-05 20:16:19 +0800 CST

回填缺失值

  • 5

假设有以下内容:


data DB1;
  input ID Index;
cards;
0001  .    
0001  1 
0003  .
0003  5
0004  .
0004  .
0004  2
;


data DB2;
  input ID Index;
cards;
0001  1    
0001  1 
0003  5
0003  5
0004  2
0004  2
0004  2
;

DB1 在每个 ID 的最后一个可用行处都有一个索引。有没有办法用ID最后一行中的值填充ID最后一行之前的缺失值?DB2 是所需的输出。

先感谢您

sas
  • 2 个回答
  • 15 Views
Martin Hope
NewUsr_stat
Asked: 2024-04-19 17:35:11 +0800 CST

添加基于另一个数据集的标志

  • 5

假设有一个包含 x 列(变量)的数据集“DB1”。您有一个名为“my_identifiers”的变量。然后,您有另一个数据集“DB2”,其中有一个名为“my_identifiers_subset”的变量。然后,如果 DB2 中的“my_identifiers_subset”值位于 DB1 中的“my_identifiers”中,则在 DB1 中添加一个列标志,其中包含 1,否则为 0。

有人可以帮我吗?当比较涉及相同的数据集时,我知道如何处理这个问题,但在与外部数据集比较时,我不知道如何处理这个问题。

          data DB1;
          input ID$ my_identifiers$;
          cards;
          1 345 
          1 45 
          2 678
          3 432
          3 432
          4 7
          ..........
          ;
          data DB2;
          input my_identifiers_subset$;
          cards;
          345  
          432
          44
          ..........
          ;

期望的输出:

          data DB3;
          input ID$ my_identifiers$ Index$;
          cards;
          1 345 1
          1 45  0
          2 678 0
          3 432 1
          3 432 1
          4 7   0
          ..........
          ;

先感谢您,

最好的。

sas
  • 2 个回答
  • 18 Views
Martin Hope
NewUsr_stat
Asked: 2024-03-08 22:11:38 +0800 CST

将 yyyy/mm 转换为 mmyyyy SAS 格式

  • 3

也许问了很多次..但仍然在挣扎。如何将以下日期格式:2020/11 (yyyy/mm) 转换为 NOV2020?我没有日子了。

先感谢您。

最好的。

sas
  • 1 个回答
  • 17 Views
Martin Hope
NewUsr_stat
Asked: 2024-03-06 20:03:04 +0800 CST

转换为十进制防止修剪 0

  • 5

我遇到的情况与此处报告的情况类似:https ://communities.sas.com/t5/New-SAS-User/Transform-integer-into-decimal/mp/918994#M41156

假设有以下数据(都是数字,而不是字符):

data have;
input Hosp1 Hosp2 ;
cards;
71515   42731
48041 5761
4329    481
85201  42731
85220   5119
4280  40211
2510   4280
39   22
;
run;     

我想要的是以下输出:

在此输入图像描述

如果我尝试使用此代码(来自 yabwon):

data want;
set have;
array H hosp1 hosp2;
do over H;
  H = H/(10**max(0,ceil(log10(H))-3)); 
 end;
 format hosp1 hosp2 best.;
 run;

输出如下:

在此输入图像描述

换句话说,4280 变成了 428,但我想要 428.0 与 2510 相同。有没有办法防止它?

先感谢您

sas
  • 3 个回答
  • 36 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve