[英]Continuous to discrete cut quartile in R from for loop
我正在嘗試創建一堆基於多列的四分位數削減的列。 例如,
dataset[,412:422] <- NA
for( i in 50:60){
for(j in 412:422){
dataset[,j] <- cut(dataset[,i],
breaks=unique(quantile(dataset[,i],probs=seq(.1,1,by=.1),na.rm=T)),
include.lowest=TRUE)
}
}
我想基於第50到60列中連續變量的合並來創建新的412到422列。當我嘗試執行上述代碼時,我得到的只是
V412 V413 V414 V415 V416 V417 V418 V419 V420 V421 V422
(56,64] (56,64] (56,64] (56,64] (56,64] (56,64] (56,64] (56,64] (56,64] (56,64] (56,64]
<NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
......
<NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
我不確定我要去哪里錯。 任何幫助將不勝感激!!!
這個問題更多的是關於數據的組織和整潔。 有很多方法可以做到這一點。
我建議將要合並到其自己的data.frame中的數據分離出來。
x=dataset[, 50:60]
然后通過使用所需參數制作函數並使用apply
這些列合並為新列
功能:
mycut=function(x) cut(x,
breaks=unique(quantile(x,probs=seq(.1,1,by=.1),na.rm=T)),
include.lowest=TRUE)
應用:
xbin=apply(x,2,mycut)
然后將xbin重新放入您的數據集中並適當命名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.