R:Padronizar usando média e sd funções
-
11-12-2019 - |
Pergunta
Eu estou tentando fazer uma simples transformação.Eu usei o seguinte código e funcionou bem:
data_stdz <- transform(data_header, z.v1 = v1+2)
Mas, eu não posso obter o código a seguir funcione:
data_stdz <- transform(data_header, z.v1 = (v1 - mean(v1))/(2*sd(v1))
Eu também tentei obter a média da função de trabalho:
data_stdz <- transform(data_header, z.v1 = mean(v1)
Mas, eu continuo recebendo o seguinte erro:
Error: unexpected symbol in:
"data_std2 <- transform(data_header, z.v1 = mean(v1)
data_std2"
Então, eu estou supondo que ele tenha algo a ver com a forma como eu estou usando a média e sd função, mas eu não tenho sido capaz de descobrir.
Dados do exemplo:
v1 v2 v3
6.7 3.8 1.2
6.3 3.2 1.2
6.1 2.6 1.6
7 2.4 1
NA NA NA
6.5 3.6 2.6
6.1 2.4 1.6
6 5.6 5.2
7 2.8 1
6.7 3.8 1.4
5.7 4.2 2.6
5.1 5.6 5
NA NA NA
Solução
Seu problema está provavelmente (em complemento ao que gavin disse) NAs.Utilização na.rm=TRUE
como em:
transform(data_header, z.v1 = (v1 - mean(v1, na.rm =T))/(2*sd(v1, na.rm =T)))
Outras dicas
Base R o scale()
função para essa finalidade.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow