基于另一个变量剪切一个变量-R

基于另一个变量剪切一个变量-R,r,R,我的数据框中有两个变量,比如BloodSugarTestType,BloodSugarReading。测试类型可以有三个值-“禁食”、“随机”、“餐后”。现在根据血糖类型,我需要将血糖分为不同的范围 我试着这样做: DBRiskProfiling.Data[DBRiskProfiling.Data$bld_sgr_ctgry=='Fasting', c('bld_sgr')] <- cut(DBRiskProfiling.Data[DBRiskProfiling.Data$bld_sgr_

我的数据框中有两个变量,比如BloodSugarTestType,BloodSugarReading。测试类型可以有三个值-“禁食”、“随机”、“餐后”。现在根据血糖类型,我需要将血糖分为不同的范围

我试着这样做:

DBRiskProfiling.Data[DBRiskProfiling.Data$bld_sgr_ctgry=='Fasting', c('bld_sgr')] <- cut(DBRiskProfiling.Data[DBRiskProfiling.Data$bld_sgr_ctgry=='Fasting', "bld_sgr"], breaks=c(0, 126, 500))

DBRiskProfiling.Data[DBRiskProfiling.Data$bld\u sgr\u ctgry=='Fasting',c('bld\u sgr')]您的描述不是很清楚,但我猜您的意思是这样的(我不认为您想要的东西可以通过
cut()
):

#首先,为每个类别创建一个具有信息字符串值的变量(假设df是data.frame)

df$reading_cat 127]sry需要麻烦。。。我得到了我想要的。谢谢你们所有试图帮助我的人。
# first, create a variable with informative string values for each category (assuming df is your data.frame)
df$reading_cat <- "f1"

df$reading_cat[df$testType == "Fasting" & df$reading > 127] <- "f2"
df$reading_cat[df$testType == "Random" & df$reading < 127] <- "r1"
df$reading_cat[df$testType == "Random" & df$reading >= 127 & df$reading < 201] <- "r2"
df$reading_cat[df$testType == "Random" & df$reading >= 201] <- "r3"

[...and so on for other categories...]

# then recode as factor to assign the labels you want
df$reading_cat <- recode(df$reading_cat, "'f1' = '(0, 126]'; 'f2' = '(126, 200]'; 'r1' = '(0, 126]'; 'r2' = '(126, 200]'; 'r3' = [...]")