我已经从 UCI 机器学习存储库下载了自行车共享数据集,并尝试在 R 中实现多元线性回归。以下是数据格式:
> head(data1)
season mnth hr holiday weekday workingday weathersit temp atemp hum windspeed cnt
1 1 1 0 0 6 0 1 0.24 0.2879 0.81 0.0000 16
2 1 1 1 0 6 0 1 0.22 0.2727 0.80 0.0000 40
3 1 1 2 0 6 0 1 0.22 0.2727 0.80 0.0000 32
4 1 1 3 0 6 0 1 0.24 0.2879 0.75 0.0000 13
5 1 1 4 0 6 0 1 0.24 0.2879 0.75 0.0000 1
6 1 1 5 0 6 0 2 0.24 0.2576 0.75 0.0896 1
我正在尝试使用以下函数规范化特定列(尚未规范化):
normalize <- function(x) {
return ((x - min(x)) / (max(x) - min(x)))
}
问题是当我运行时:
dfNorm <- as.data.frame(lapply(data1["season", "mnth", "hr", "weekday", "weathersit"], normalize))
我收到以下错误:
Error in
[.data.frame
(data1, "season", "month", "hour", "weekday", "weathersit") : unused arguments ("weekday", "weathersit")
为什么我会收到此错误以及如何修复它?
最佳答案
要就地修改,我将使用dplyr::mutate
。像这样的东西应该有效:
library(dplyr)
dfNorm <- data1 %>%
mutate_at(.vars = vars(season, mnth, hr, weekday, weathersit),
.funs = funs(normalize))
关于r - 标准化应用于数据框的数据的函数出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46186923/