假设我有一个向量,其中包含代表年龄的 0 到 12(连续)之间的值,以及 2 个分别表示“未回答”和“未回答”的标记值 97 和 99,如下所示:
v <- sample(c(sample(1:12, 95, replace = TRUE), 99, 99, 97, 99, 99))
我想将此数值向量转换为因子向量,其中我将 1 到 12 之间的连续值离散化为三个等间隔的 bin(即[1,4), [4, 8), [8,12]),以便最后我有一个具有 5 个级别的因子向量,三个垃圾箱,和 2 为97和99。我试图在 R 中找到最好/最有效的方法来做到这一点。
更新
更具体地说,我想要一个函数numeric2factor,它接受一个值vec向量、一个标记向量、由andtokens指定的连续值的范围,以及一个离散化函数。从上面的示例转换为因子向量。startenddiscrFuncnumeric2factorvec = v
假设它end小于最低标记值(例如,end=12最低标记值类似于 97),因此连续值和分类值之间没有重叠。
discrFunc做一些事情,比如返回来自 的连续值的切点(根据一些离散化方法)vec。