簡體   English   中英

R 將連續變量轉換為分類變量

[英]R converting continuous variable to categorical

我有一列連續數值(NO2),我需要將其轉換為分類值。 有人可以解釋以下代碼如何實現這一點:

cutpoints <- quantile(dataframe%NO2, seq(0,1,length=4),na.rm=TRUE)  
dataframe%newcol <- cut(dataframe%NO2, cutpoints)  
levels(dataframe%newcols) returns (0.3781,1.2] (1.2,1.42] (1.42,2.55]  

我認為您的意思是使用$而不是%來引用列名。

如果您逐步運行代碼,它將幫助您理解。

seq創建一個從 0 到 1 的序列,長度為 4。

seq(0,1,length=4)
#[1] 0.000 0.333 0.667 1.000

quantile將向量分解為具有給定概率的數據的分位數(此處為seq(0,1,length=4) )。

set.seed(123)
x <- runif(10)
cutpoints <- quantile(x, seq(0,1,length=4),na.rm=TRUE) 
#    0%  33.3%  66.7%   100% 
#0.0456 0.4566 0.7883 0.9405 

現在這些中斷用於cut數據。

cut(x, cutpoints)

這意味着我們將x分成不同的組,其中cutpoints[1]-cutpoints[2]是一組, cutpoints[2]-cutpoints[3]是另一組,依此類推。

您也可以使用findInterval而不是cut

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM