Estou me perguntando o que estou fazendo de errado com essa condicional transform
em Julia's
DataFrames
. Tentei seguir os exemplos aqui , mas de alguma forma não consegui traduzir as instruções para escrever uma função que transforme as linhas necessárias.
Meu código:
function cleaner(name,cc)
if name == "svietnam"
"DRV"
elseif name == "vietnam"
"RVN"
else
Missing
end
end
formal_long_vietnamcleaned = transform(formal_long, [:name, :country_code] => cleaner => :cleaned_cc )
De alguma forma, a comparação de strings não funciona. Quando tentei verificar se as strings existem na tabela com
formal_long_vietnamcleaned[formal_long_vietnamcleaned.name .== "svietnam",:]
Eu definitivamente consegui fósforos. De alguma forma, não entendo como escrever uma função útil para transform
. Eu apreciaria a ajuda de vocês!
Você quer
ByRow(cleaner)
desde sem,name
ecc
serão as colunas inteiras (vetores), então o que está acontecendo é algo como["svietnam"] == "svietnam"
o que é obviamente falso.ByRow
aplica a função linha a linha para que a função obtenha os elementos individuais de cada coluna.Além disso,
missing
deve estar em letras minúsculas.