我写了一篇有趣的文章,用来规范从0到5的一组数字。但是我有NAs作为我的数据的一部分,我希望能跳过它们,移到下一个值。
我试过这样的代码:
IDNO<-1:11
Scores<-c(1:10,NA)
ScoreDF<-as.data.frame(cbind(IDNO,Scores))
Normalize.Final.Score.fun <- function(x){
5*(x-min(x))/(max(x)-min(x))
}
ScoreDF<-ScoreDF %>%
mutate(BotanicalVal=Normalize.Final.Score.fun(Scores))我希望输出与运行这一行的结果一样:
ScoreDF$ExpectedBotanicalVal<- c(Normalize.Final.Score.fun(Scores[1:10]),"NA")1 "0“"0.555555555555556”"1.11111111111111“4 "1.66666666666667”"2.22222222222222“"2.77777777777778”7 "3.33333333333333“3.88888888888889”4.44444444444444“10 "5” "NA“
而我只得到了NAs。提前感谢您的帮助
发布于 2019-07-04 08:01:10
只需将na.rm = TRUE添加到您的呼叫中即可
Normalize.Final.Score.fun <- function(x) {
5 * (x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE))
}https://stackoverflow.com/questions/56883205
复制相似问题