我有包含索引和季節的數據,並希望將這些數據離散化。我創建了示範一些假的數據:將ifelse與分組變量一起使用
data_frame <- data.frame(index=c(10,233.2,12,44,56,232,1.4,43,76,89,20.3,23), season=c('Fall','Winter','Fall','Summer','Winter','Spring','Spring','Summer','Winter','Spring','Summer','Fall'))
data_frame
index season
1 10.0 Fall
2 233.2 Winter
3 12.0 Fall
4 44.0 Summer
5 56.0 Winter
6 232.0 Spring
7 1.4 Spring
8 43.0 Summer
9 76.0 Winter
10 89.0 Spring
11 20.3 Summer
12 23.0 Fall
因爲在我的原始數據,每個季節的分佈是不同的,我想在賽季變量離散指數分組。我通過給組中的第75個百分點分配一個1來分配數據,而將0分配給下面的任何數據。
我想下面的輸出:
index season disc
1 10.0 Fall 0
2 233.2 Winter 1
3 12.0 Fall 0
4 44.0 Summer 1
5 56.0 Winter 0
6 232.0 Spring 1
7 1.4 Spring 0
8 43.0 Summer 0
9 76.0 Winter 0
10 89.0 Spring 0
11 20.3 Summer 0
12 23.0 Fall 1
我知道如何尋找的結果,但不是在我需要的格式。我現在用的是tapply
功能離散我的變量:
tapply(data_frame$index, data_frame$season, function(x) ifelse(x>quantile(x,0.75),1,0))
$Fall
[1] 0 0 1
$Spring
[1] 1 0 0
$Summer
[1] 1 0 0
$Winter
[1] 1 0 0
我怎麼會生產出我需要的輸出?
'AVE(data_frame $指數,data_frame $季節,FUN =函數(X)ifelse (x> quantile(x,0.75),1,0))?? – Frank
geez,我忘了'ave'。你介意讓這個答案嗎? – Michal
Np,我有點懷疑這個問題是一個騙局,所以我會留下它作爲評論。儘管如此,任何人都可以隨意將其轉換爲答案。如果你需要經常做分組的話,我建議使用'dplyr'或'data.table'。 – Frank