正常化後,我所說的「天氣」下面的數據幀,我想正常化:NA R中
'data.frame': 4745 obs. of 9 variables:
$ TimeofDay : int 700 800 900 1000 1100 1200 1300 1400 1500 1600 ...
$ AirTemp : num 16.4 17.7 19.3 19.8 21.3 ...
$ Humidity : num 76.3 68.5 57.4 53.6 49.2 ...
$ Dewpoint : num 12.2 11.8 10.7 10.2 10.2 ...
$ BarPres : num 101 101 101 101 101 ...
$ MaxWindSpeed : num 4.45 5.25 5.25 6.85 5.25 ...
$ Zenith : num 99 88.4 81.7 72.2 64.5 59.2 57.1 58.4 63 70.3 ...
$ Azimuth : num -99 119 125 135 148 ...
$ TotalSolarRad: int 0 2 77 116 76 93 138 125 138 82 ...
我現在用的是標準的標準化功能如下:
normalize <- function(x) {
return ((x - min(x))/(max(x) - min(x)))
}
和應用它是這樣的:
weatherNorm <- as.data.frame(lapply(weather, normalize))
歸一化後,新的數據幀由許多NA值組成:
'data.frame': 4745 obs. of 9 variables:
$ TimeofDay : num NA NA NA NA NA NA NA NA NA NA ...
$ AirTemp : num NA NA NA NA NA NA NA NA NA NA ...
$ Humidity : num NA NA NA NA NA NA NA NA NA NA ...
$ Dewpoint : num NA NA NA NA NA NA NA NA NA NA ...
$ BarPres : num NA NA NA NA NA NA NA NA NA NA ...
$ MaxWindSpeed : num NA NA NA NA NA NA NA NA NA NA ...
$ Zenith : num 1 0.879 0.803 0.695 0.607 ...
$ Azimuth : num 0 0.562 0.577 0.604 0.635 ...
$ TotalSolarRad: num 0 0.00199 0.07669 0.11554 0.0757 ...
是否有任何理由爲什麼函數會將值更改爲NA?該功能根據需要在其他數據幀上根據需要工作。
請參閱'?max'。你想要'na.rm'。 – MichaelChirico
發佈一個可重現的例子,而不是'str' – Sotos
我也會這樣做:'r < - range(x,na.rm = TRUE);返回((x - r [1])/ diff(r))' - 你正在計算'min'兩次 – MichaelChirico