[英]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.