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

fe108's questions

Martin Hope
fe108
Asked: 2024-08-07 20:58:16 +0800 CST

Nomeando dinamicamente uma variável em R

  • 5

Estou trabalhando em R.

Tenho duas variáveis ​​definidas:

year_current <- 24
year_last <- 23

Atualmente tenho uma variável e ela está definida assim:

SQL_flatfile_23_24 <-  "[schema_24].[liverun_23_24]"

No entanto, quero que ele seja atualizado dinamicamente. Ou seja, quando atualizo year_current e year_last, não preciso atualizar essa linha de código também.

Acho que terá que ter algo a ver com sym, ou !! ou :-, mas não consigo fazer funcionar!

sym(paste0("SQL_flatfile_", year_last, "_", year_current)) = 
        paste0("[schema_", year_current, "][liverun_", year_last, "_", year_current, "]")

O lado esquerdo parece funcionar bem - ou seja, não está sendo gerado como uma string?

> sym(paste0("SQL_flatfile_", year_last, "_", year_current))
SQL_flatfile_2023_2024  

Mas administrar tudo não funciona...

Alguém tem alguma idéia?

  • 1 respostas
  • 39 Views
Martin Hope
fe108
Asked: 2024-02-14 23:34:13 +0800 CST

Faça um loop por uma série de variáveis ​​​​e insira cada uma em uma função R

  • 8

Estou trabalhando em R.

Tenho alguns dados sobre o pessoal de uma escola:

data <- data.frame(person_id = c(1, 2, 3, 4, 5, 6, 7, 8), 
                   disability_status = c("yes", "no", "yes", "no", "yes", "no", "yes", "no"),
                   age_group = c("20-30","30-40","20-30","30-40","20-30","30-40","20-30","30-40"), 
                   teacher = c("yes", "no", "no", "yes", "no","yes", "no", "yes" ))

Eu escrevi uma função que cria somas em quais variáveis ​​você insere nela. O argumento "group_tag" serve para ajudar na depuração posterior em meu código.

group_the_data <- function(data, 
                           variable, 
                           group_tag) {
  
  grouped_output <- data %>%
                    mutate(flag = 1) %>%
                    group_by({{variable}}) %>%
                    summarise(number_staff = sum(flag, na.rm = T)) %>%
                    mutate(grouping_tag := {{group_tag}})
  
  return(grouped_output)
  
}

Em seguida, uso a função para agrupar por status_de_incapacidade, grupo_etário e professor, por sua vez:

disability_grouped <- group_the_data(data = data,
                                     variable = disability_status,
                                     group_tag = "disability status")

age_group_grouped <- group_the_data(data = data,
                                    variable = age_group,
                                    group_tag = "age group")

role_grouped <- group_the_data(data = data,
                               variable = teacher,
                               group_tag = "role")

Depois de ter os dataframes necessários, eu os uno:

all_data_grouped <- bind_rows(disability_grouped, age_group_grouped, role_grouped)

Existe uma maneira de percorrer as variáveis ​​para que eu não precise escrever a função três vezes?

Ou usar uma das funções do Apply é uma ideia melhor?

  • 1 respostas
  • 39 Views
Martin Hope
fe108
Asked: 2024-01-08 21:35:45 +0800 CST

Verificando se os conjuntos de colunas são iguais, em linha em R, em qualquer ordem

  • 16

Estou trabalhando em R e preferiria uma solução dplyr, se possível.

dados de amostra:

data.frame(
  col1 = c("a", "b", "c", "d"),
  col2 = c("a", "b", "d", "a"),
  col3 = rep("a", 4L),
  col4 = c("a", "b", "d", "a"),
  col5 = c("a", "a", "c", "d"),
  col6 = rep(c("b", "a"), each = 2L)
)
col1 col2 col3 col4 col5 col6
a a a a a b
b b a b a b
c d a d c a
d a a a d a

Pergunta

Gostaria de saber para cada linha se col1, col2 e col3 são iguais a col4, col5 e col6, mas a ordem de col1 - col3 e col4 - col6 deve ser ignorada.

Portanto, para a linha 1, se col1 - col3 contivesse a,a,b respectivamente, e col4 - col6 contivesse b,a,a respectivamente, isso seria considerado uma correspondência.

Resultado desejado

Coloquei uma nota na coluna "avaliação" para ajudar na compreensão

col1 col2 col3 col4 col5 col6 avaliação
a a a a a b FALSO (porque 1-3 não é igual a 4-6)
b b a b a b VERDADEIRO (porque 1-3 é igual a 4-6, se ignorar a ordem)
c d a d c a VERDADEIRO (porque 1-3 é igual a 4-6, se ignorar a ordem)
d a a a d a VERDADEIRO (porque 1-3 é igual a 4-6, se ignorar a ordem)
  • 8 respostas
  • 223 Views
Martin Hope
fe108
Asked: 2024-01-04 00:02:02 +0800 CST

Combinando pessoas com nomes semelhantes: R

  • 8

Estou trabalhando em R

Meus dados possuem 500.000 linhas, mas um pequeno exemplo é usado aqui.

Tenho alguns dados sobre funcionários que trabalham em escolas. Algumas pessoas trabalham em uma escola, outras em duas, outras em três, etc. Cada escola em que trabalham é uma linha de dados.

As escolas nem sempre registram os primeiros nomes iguais para um indivíduo. por exemplo, uma escola registra como Will, outra como William.

Também tenho esta suposição: para um indivíduo que trabalha em mais de uma escola, o segundo nome e a data de nascimento são sempre registrados iguais em cada escola.

Com base na semelhança do primeiro nome, quero uma maneira de identificar as pessoas que provavelmente são a mesma pessoa e, em seguida, atribuir-lhes um ID.

Haverá algum tipo de corte, por exemplo, greg e griffin provavelmente não serão a mesma pessoa, embora compartilhem as mesmas duas primeiras letras.

dados de amostra:

data_current <- data.frame(first_name = c("will", "william", "william", "laura", "jessica", "jessicalouise", "james", "greg", "griffin"), 
                           last_name = c("smith", "smith", "smith", "maxwell", "maxwell", "maxwell", "lead", "jones", "jones"),
                           date_of_birth = c("2000-01-02","2000-01-02", "2000-01-02", "2007-01-02","2007-01-02","2007-01-02","1999-01-02","2004-01-02","2004-01-02"), 
                           school_id = c(1, 2, 3, 4, 5, 6, 7, 8, 9))
primeiro nome segundo nome data de nascimento id_escola
vai ferreiro 02/01/2000 1
William ferreiro 02/01/2000 2
William ferreiro 02/01/2000 3
Laura maxwell 02-01-2007 4
Jéssica maxwell 02-01-2007 5
jessicalouise maxwell 02-01-2007 6
James liderar 02/01/1999 7
Greg Jones 02-01-2004 8
grifo Jones 02-01-2004 9

dados desejados:

É provável que as três primeiras pessoas sejam a mesma pessoa, portanto recebam o mesmo person_id e assim por diante...

data_desired <- data.frame(first_name = c("will", "william", "william", "laura", "jessica", "jessicalouise", "james", "greg", "griffin"), 
                           last_name = c("smith", "smith", "smith", "maxwell", "maxwell", "maxwell", "lead", "jones", "jones"),
                           date_of_birth = c("2000-01-02","2000-01-02", "2000-01-02", "2007-01-02","2007-01-02","2007-01-02","1999-01-02","2004-01-02","2004-01-02"), 
                           school_id = c(1, 2, 3, 4, 5, 6, 7, 8, 9),
                           person_id = c(1, 1, 1, 2, 3, 3, 4, 5, 6))
primeiro nome segundo nome data de nascimento id_escola id_pessoa
vai ferreiro 02/01/2000 1 1
William ferreiro 02/01/2000 2 1
William ferreiro 02/01/2000 3 1
Laura maxwell 02-01-2007 4 2
Jéssica maxwell 02-01-2007 5 3
jessicalouise maxwell 02-01-2007 6 3
James liderar 02/01/1999 7 4
Greg Jones 02-01-2004 8 5
grifo Jones 02-01-2004 9 6

Alguém tem alguma sugestão de como resolver isso?

  • 1 respostas
  • 54 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