R:从两个不同的数值向量创建一个因子';价值观

R:从两个不同的数值向量创建一个因子';价值观,r,R,作为R领域的新手,我被数据操作这个问题所困扰: 我需要创建一个具有4个级别的因子,从到两个数值向量(启用、限制)。后者是因子得分 这4个级别应为: 级别1=数据$enable>median(数据$enable)&数据$restrict>median(数据$restrict) 第2级=数据$enable中间值(数据$STRICT) 还有下面两个组合。我也想给这些级别加上标签。 我不知道如何将它嵌套在factor()函数中 有什么帮助吗? 谢谢一个选项是使用嵌套的ifelse with(data

作为R领域的新手,我被数据操作这个问题所困扰: 我需要创建一个具有4个级别的因子,从到两个数值向量(启用、限制)。后者是因子得分

这4个级别应为:

  • 级别1=数据$enable>median(数据$enable)&数据$restrict>median(数据$restrict)

  • 第2级=数据$enable<中间值(数据$enable)&数据$STRICT>中间值(数据$STRICT)

还有下面两个组合。我也想给这些级别加上标签。 我不知道如何将它嵌套在factor()函数中

有什么帮助吗?
谢谢

一个选项是使用嵌套的
ifelse

with(data, 
   ifelse(enable > median(enable)  & restrict  > median(restrict),1, 
   ifelse(enable < median(enable) & restrict > median(restrict), 2, 
   ifelse(enable > median(enable) & restrict < median(restrict), 3,
      4))))
#[1] 2 4 1 2 3 1 4 3 1 4
数据
set.seed(24)

数据您能分享一个数据示例吗?您需要知道什么?您可以使用
描述的所有内容如果其他
数据是机密的,我可以分享一个数据框,其中包含两个需要重新编码为因子的变量。这行得通吗?第一种选择很有效。我刚刚包装成一个新的因素。非常感谢!
library(matrixStats)
factor(do.call(paste0,  as.data.frame((data >
      colMedians(as.matrix(data))[col(data)])+1L)))
set.seed(24)
data <- data.frame(enable = sample(20, 10, replace=TRUE),
           restrict = sample(20, 10, replace=TRUE))