我嘗試了以下公式,但即使我更改分位數值,它也會給出所有錯誤。注意:我有 3 個要應用該功能的獨立資料集。
outlier<-function(x1,x2){
q1<-quantile(x1 , .75, na.rm = TRUE)
if(x1>q1){x2<-"Yes"
}else{
x2<-"No"
}
}
我已經x2<-ifelse(x1>q1,"Yes","No")
在函式內部嘗試過,但它仍然不起作用。
uj5u.com熱心網友回復:
您可以使用ifelse陳述句并使用mutate.
library(dplyr)
set.seed(1)
df <- tibble(x1 = sample(c(1:10), size = 10, replace = T))
df %>%
mutate(x2 = ifelse(quantile(x1, 0.75, na.rm = T) < x1, "Yes", "No"))
如果你想要一個功能
library(dplyr)
set.seed(1)
df <- tibble(x1 = sample(c(1:10), size = 10, replace = T),
x2 = sample(c(1:10), size = 10, replace = T),
x3 = sample(c(1:10), size = 10, replace = T),
x4 = sample(c(1:10), size = 10, replace = T))
outlier<-function(dataframe, quant = 0.75, col = c("x1", "x2")){
dataframe %>%
mutate(across(all_of(col), ~ifelse(.x>quantile(.x,0.75), 'Yes', 'No'),
.names = '{col}_yes'))
}
outlier(dataframe = df,quant = 0.25)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/460415.html
上一篇:如何在函式呼叫下在if-else條件下用一些靜態值填充缺失的列
下一篇:根據最佳分數查找等級
