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-10459366

Andrea's questions

Martin Hope
Andrea
Asked: 2025-03-30 02:31:27 +0800 CST

Em R, como posso recolher os dados de linhas agrupadas em uma única linha?

  • 14

Tenho o seguinte dataframe de exemplo:

df <- data.frame(
    record_id = c(1, 1, 1, 2, 2, 3, 3, 3),
    instance = c(NA, NA, 2, NA, 1, 2, NA, NA),
    A = c(10, NA, NA, 20, 25, NA, 30, NA),
    B = c(NA, 5, NA, NA, 5, 15, NA, 15),
    C = c(NA, NA, 3, NA, 5, 20, NA, 20),
    D = c(NA, NA, NA, 25, 25, 30, NA, 30)
)

  record_id instance  A  B  C  D
1         1       NA 10 NA NA NA
2         1       NA NA  5 NA NA
3         1        2 NA NA  3 NA
4         2       NA 20 NA NA 25
5         2        1 25  5  5 25
6         3        2 NA 15 20 30
7         3       NA 30 NA NA NA
8         3       NA NA 15 20 30

Se a instância for NA, quero que as linhas do mesmo record_id sejam recolhidas em uma linha. No meu dataframe, não haverá dois ou mais valores na mesma coluna para o mesmo record_id e grupo de instâncias NA.

Em outras palavras, eu gostaria de obter:

  record_id instance  A  B  C  D
1         1       NA 10  5 NA NA
2         1        2 NA NA  3 NA
3         2       NA 20 NA NA 25
4         2        1 25  5  5 25
5         3        2 NA 15 20 30
6         3       NA 30 15 20 30

Como posso fazer isso?

  • 5 respostas
  • 505 Views
Martin Hope
Andrea
Asked: 2024-10-11 02:52:39 +0800 CST

usando um dataframe de "pesquisa" para mapear pares de valores em R

  • 6

Tenho um dataframe df de visitas de pacientes estruturado no seguinte formato:

EU IA número_de_visita variável valor
34 1 altura curto
34 1 peso sobre
34 1 cor dos olhos marrom
34 1 cor_de_cabelo marrom
89 1 peso normal
89 1 altura curto
89 2 altura curto
89 2 peso sobre
df <- data.frame(ID = c(34, 34, 34, 34, 89, 89, 89, 89), visit_number = c(1, 1, 1, 1, 1, 1, 2, 2), variable = c("height", "weight", "eye_color", "hair_color", "weight", "height", "height", "weight"), value = c("short", "over", "brown", "brown", "normal", "short", "short", "over"))

Então, para a visita nº 1, o paciente 34 teve sua altura, peso, cor dos olhos e cabelo anotados. O paciente 89 teve duas visitas registrando sua altura e peso.

Tenho um arquivo de mapeamento que mostra um par de variáveis ​​e valores que resulta em um novo valor que eu gostaria de extrair para cada par relevante:

var_1 val_1 var_2 val_2 novo_nome_var novo_val
altura curto peso normal saúde média
altura curto peso sobre saúde avisar
cor dos olhos marrom cor_de_cabelo marrom tez monocromático
cor dos olhos azul cor_de_cabelo loiro tez contraste
mapping <- data.frame( var_1= c("height", "height", "eye_color", "eye_color"), val_1 = c("short", "short", "brown", "blue"), var_2 = c("weight", "weight", "hair_color", "hair_color"), val_2 = c("normal", "over", "brown", "blonde"), new_var_name = c("health", "health", "complexion", "complexion"), new_val = c("average", "warn", "monochrome", "contrast"))

Então, esse arquivo de mapeamento mostra que se a altura de um paciente for baixa e seu peso for normal, eu gostaria de criar uma variável de saúde definida como "média". Se a altura dele for baixa e seu peso for acima do normal, eu gostaria que esse indicador de saúde fosse "aviso", e assim por diante, como os outros pares nas linhas subsequentes mostram.

Qual seria a melhor maneira de fazer isso? Podemos assumir que todos os pares serão cobertos no dataframe de mapeamento e também podemos assumir que não haverá pares incompletos nos dados.

  • 1 respostas
  • 32 Views
Martin Hope
Andrea
Asked: 2024-10-10 06:06:21 +0800 CST

Como remodelar um dataframe em formato amplo com pares de colunas especificados

  • 7

Tenho o seguinte dataframe de amostra derretido:

df_melted <- data.frame(ID = c(21, 21, 21, 21, 49, 49, 49, 49), instance = c(1, 1, 1, 1, 1, 1, 2, 2), variable = c("causeofdeath", "deathdate", "dob", "gender", "causeofdeath", "deathdate", "deathdate", "causeofdeath"), value_temp = c("BLANK", "MM/DD/YYYY", "BLANK", "F", "BLANK", "BLANK", "MM/DD/YYYY", "BLANK"))

df_derretido

E o seguinte arquivo de mapeamento que desejo usar eventualmente para produzir novos valores usando um left_join():

df_map <- data.frame(var_name_1 = c("causeofdeath", "causeofdeath", "dob"), val_1 = c("BLANK", "BLANK", "MM/DD/YYYY"), var_name_2 = c("deathdate", "deathdate", "gender"), val_2 = c("MM/DD/YYYY", "BLANK", "F"), new_var_name = c("ida", "idf", "ids"), new_val = c("T60", "T55", "T67"))

df_mapa

Como posso remodelar df_melted para que fique no mesmo arranjo específico mostrado em df_map sem fazer nenhuma suposição sobre a ordem do dataframe?, ou seja:

df_procurado

Eu tentei usar pivot_wider() sem sucesso

  • 1 respostas
  • 69 Views
Martin Hope
Andrea
Asked: 2023-09-26 21:40:14 +0800 CST

Gere código de erro específico para entrada de função ausente

  • 5

Eu tenho duas funções semelhantes às seguintes. O primeiro detecta se uma variável está em branco enquanto o segundo irá gerar algo que não é relevante para esta questão. Quero que a segunda função gere as seguintes mensagens de erro específicas nas condições estipuladas com o "if":

is.blank <- function(x) is.na(x) | x == ""

generate_something <- function(n, m, roll) {
  if (is.blank(n)) {
     stop("Missing number of blocks.")
  }
  if (is.blank(m)) {
     stop("Missing M number.")
  }
  if (is.blank(roll) && m > 27) {
     stop("Missing roll where relevant.")
  }
}

No entanto, R não funciona bem com isso quando tento executar generate_something() sem nenhuma entrada. Em vez disso, ele me dará sua própria mensagem de erro:

Error in generate_something(m = 34, roll = 1) :
 argument "n" is missing with no default

Porém, se eu definir a função com todas as entradas iguais a NULL, isso também não resolverá o problema. O que posso fazer para resolver esse problema?

  • 2 respostas
  • 41 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