![](/img/trans.png)
[英]R - random distribution with predefined min, max, mean, and sd values
[英]Replace min and max values with predefined values in r
我想用預定義的最小值和最大值替換列中的最小值和最大值。
這是一個示例數據集:
ids <- c(1,2,3,4,5,6,7,8,9,10)
scores.a <- c(512,531,541,555,562,565,570,572,573,588)
data <- data.frame(ids, scores.a)
min <- 520
max <- 595
> data
ids scores.a
1 1 512
2 2 531
3 3 541
4 4 555
5 5 562
6 6 565
7 7 570
8 8 572
9 9 573
10 10 588
所以,我需要用 520 替換 512,用 595 替換 588。
The desired output is:
> data
ids scores.a
1 1 520
2 2 531
3 3 541
4 4 555
5 5 562
6 6 565
7 7 570
8 8 572
9 9 573
10 10 595
有任何想法嗎?
謝謝!
我們用range
和replace
創建一個邏輯條件(假設min/max
沒有關系
datas$scores.a <- with(data, replace(scores.a, scores.a %in%
range(scores.a), c(min, max)))
如果有ties
,一個選項是case_when
library(dplyr)
data %>%
mutate(scores.a = case_when(scores.a == min(scores.a) ~ min,
scores.a == max(scores.a) ~ max,
TRUE ~ scores.a))
-輸出
# ids scores.a
#1 1 520
#2 2 531
#3 3 541
#4 4 555
#5 5 562
#6 6 565
#7 7 570
#8 8 572
#9 9 573
#10 10 595
注意:最好為 object 使用不同的名稱而不是 function 名稱( min
, max
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.