사용자 정의 된 정규화에 의해 데이터 프레임의 선택된 열을 표준화하려고합니다. 지금까지 나는 최소한의 예로서R에서 모드 정규화를 위해 데이터 프레임 슬라이스를 히스토그램 함수에 전달하는 방법?
library(tidyr)
library(ggplot2)
Mode <- function(x, na.rm = TRUE) {
x <- lapply(x, as.numeric)
distribution <- hist(x, breaks = 50, plot = FALSE)
distribution$mids[which.max(distribution$counts)]
}
data_normalised <- lapply(mtcars[,-9:-12], function(x) {(x-Mode(x))/(sd(x))})
으로 예를 들어 설명합니다. 그러나 hist는 "x는 숫자 여야합니다."라고 불평하고 있습니다. 이 문제가 해결 될 수 있다고 생각했습니다.
x <- lapply(x, as.numeric)
작동하지 않는 것으로 보았습니다. 나는 eighter 작동하지 않습니다
hist(mtcars[[-9:-12]])
로, HIST이
hist(mtcars[[3]])
작동하지만 DF 슬라이스와 HIST 기능을 결합 할 수있는 방법을 찾을 수 있다는 것을 알고.
Idealy 나는 Mode() 함수가 sd() 함수로 작동하기를 원합니다. df 컬럼을 취하여 값을 돌려 준다.
도움 주셔서 감사합니다.
함수'Mode'는 아무 것도 반환하지 않습니다. 함수를 종료하기 전에'return() '과 관심이있는 값을 추가해야한다. – R18