AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-1083757

NewUsr_stat's questions

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

Marcar datas repetidas por ID

  • 2

suponha que tenha o seguinte:

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 
;


Existe uma maneira de obter o seguinte?

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 .
;

Em outras palavras, eu gostaria de adicionar uma coluna Índice contendo um valor ausente para todas as datas repetidas, exceto a primeira, por ID.

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

Somar valores somente em datas replicadas

  • 5

Como posso somar valores de uma variável somente quando aparecem datas replicadas por ID?

Suponha que tenha:

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
;


A saída desejada deve ser:

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
;

Agradeço antecipadamente

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

Substituir valores em um conjunto de dados por valores em outro conjunto de dados, mas somente quando uma variável assume um valor específico

  • 6

suponha que tenha o seguinte conjunto de dados:

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
;

Então, tenho outro conjunto de dados que se parece com este e vem de outro cálculo:


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
;

Existe uma maneira de obter o seguinte?

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  .  .
;

Em outras palavras, eu gostaria de substituir valores em have por valores em have1 (onde Index = 1). O restante em have deve ser definido como "." para ter have3. O número total de variáveis: é 50. Aqui, apenas 2 são mostrados para simplificar.

Agradeço antecipadamente

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

Uniformizar um valor de variável por outras variáveis

  • 5

suponha que tenha o seguinte:

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
;

Existe uma maneira de obter o seguinte?


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
;

Em outras palavras, preciso uniformizar o valor da variável "Place" = 1 por ID e Início-Fim.

Agradeço antecipadamente

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

Soma por IDs e variáveis

  • 5

como posso somar um conjunto de variáveis ​​por ID?

Suponha que você tenha o seguinte:

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    .     .
;

Existe uma maneira de obter o seguinte?

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    .     .    .
;

A soma deve ser colocada na primeira ocorrência/posição de cada ID.

Agradeço antecipadamente

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

Reter apenas o primeiro valor de uma variável

  • 5

suponha que tenha o seguinte:

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
;

Existe uma maneira de obter o seguinte?

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 .
;

Significado: se houver Índice = 1 repetido para um paciente, apenas o primeiro será retido e os outros devem ser definidos como ausentes.

Agradeço antecipadamente

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

Atualizar uma variável de índice com base nos valores que ela assume

  • 5

suponha que tenha o seguinte conjunto de dados

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

Existe uma maneira de obter o seguinte?

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

Em outras palavras, se o paciente tiver pelo menos uma vez morbidade = 1, todas as vezes restantes morbidade = 2 devem se tornar 0.

Agradeço antecipadamente.

Melhor

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

Converter aaaamm em sas date9 e dividir

  • 5

Tenho datas como "202407". Como posso convertê-las para o formato Sas date9. para ter "JUL2024"? Existe também uma maneira de separar em duas novas variáveis ​​o mês "7" e o ano "2024"?

Agradeço antecipadamente.

Melhor

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

Compare duas variáveis ​​entre dois conjuntos de dados e crie uma nova variável com base na comparação

  • 5

suponha que tenha os seguintes conjuntos de dados:

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;

Existe uma maneira de comparar o valor Variable_ no DB1 com Variable no DB na data correspondente e POR ID? Como você pode ver no DB1, algumas datas são replicadas e quando isso acontece, o valor de Variable_ também é replicado, então não há chance de ter 1 ou 0 quando as datas são replicadas, mas sempre 1 ou sempre 0. A saída desejada deve ser:

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;

Em outras palavras, uma nova variável deve ser criada no DB, chamada "New_Var" igual a 1 somente se Variable_ = 1 no DB1 e Variable = 0 no DB.

Agradeço antecipadamente

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

Atualizar registros reais de uma variável com base na data anterior

  • 5

suponha que tenha o seguinte conjunto de dados:

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 
...;

A morbidade = 1 indica que a morbidade ocorreu naquela data. Se as datas forem replicadas, elas terão 1 se a morbidade ocorreu e 0 se não. Existe uma maneira de obter o seguinte conjunto de dados?



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 
...;

Em outras palavras, para cada data, para cada ID (paciente), se a morbidade ocorreu antes da data real, a data real deve ter new_morbidity = 1 se tiver morbidade = 0. Caso contrário, é claro, terá new_morbidity= 1 se morbidade já for = 1. Isso linha por linha, data por data, através do histórico do paciente.

Alguém pode me ajudar, por favor? Não sei como gerenciar a comparação data real-data anterior.

Agradeço antecipadamente

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

Remover o dia de uma data no formato SAS

  • 6

Tenho um conjunto de dados com datas no formato SAS, por exemplo: 01OCT2019. Existe uma maneira de remover “01” da data? Tentei formatar a data usando monyy7. mas não funciona.

Agradeço antecipadamente.

Melhor

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

Preencha os valores ausentes

  • 5

suponha que tenha o seguinte:


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 possui um índice na última linha disponível de cada ID. Existe uma maneira de preencher os valores ausentes antes da última linha do ID com o valor da última linha do ID? DB2 é a saída desejada.

Agradeço antecipadamente

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

Adicione uma sinalização com base em outro conjunto de dados

  • 5

Suponha que haja um conjunto de dados "DB1" com x colunas (variáveis). Você tem uma variável chamada "my_identifiers". Então você tem outro conjunto de dados "DB2" com uma variável chamada "my_identifiers_subset". Então, se os valores de "my_identifiers_subset" do DB2 estiverem em "my_identifiers" do DB1, você adiciona um sinalizador de coluna no DB1 contendo 1, caso contrário, 0.

Alguém pode me ajudar por favor? Sei como lidar com isso quando a comparação envolve o mesmo conjunto de dados, mas não sei como lidar com isso ao comparar com um conjunto de dados externo.

          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
          ..........
          ;

Saída desejada:

          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
          ..........
          ;

Agradeço antecipadamente,

Melhor.

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

Converter aaaa/mm em formato SAS mmaaaa

  • 3

talvez tenha perguntado muitas vezes ... mas ainda lutou com isso. Como converter o seguinte formato de data: 2020/11 (aaaa/mm) para NOV2020? Eu não tenho dia.

Agradeço antecipadamente.

Melhor.

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

Transformar em decimal evitando o corte de 0s

  • 5

Estou em uma situação como a relatada aqui: https://communities.sas.com/t5/New-SAS-User/Transform-integer-into-decimal/mp/918994#M41156

Suponha que tenha os seguintes dados (todos numéricos, não caracteres):

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

O que eu gostaria é a seguinte saída:

insira a descrição da imagem aqui

Se eu tentar usar este código (como no 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;

A saída é a seguinte:

insira a descrição da imagem aqui

Em outras palavras, 4280 se torna 428, mas eu gostaria de 428,0. O mesmo para 2510. Existe uma maneira de evitar isso?

Agradeço antecipadamente

sas
  • 3 respostas
  • 36 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

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

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve