R 从大量类别生成虚拟变量

R 从大量类别生成虚拟变量,r,conditional,R,Conditional,所以…我有一个很大的数据集,其中有一个变量,它有很多类别。我想创建新的变量,将其中的一些类别组合成一个 classes <- c(549,162,210,222,44,96,62,208,525,202,149,442,427, 564,423,106,422,546,205,560,127,536,34,261,568, 366,524,401,548,95,156,8,528, 430,527,556,203,554,523, 501,530,55,

所以…我有一个很大的数据集,其中有一个变量,它有很多类别。我想创建新的变量,将其中的一些类别组合成一个

classes <- c(549,162,210,222,44,96,62,208,525,202,149,442,427,
      564,423,106,422,546,205,560,127,536,34,261,568,
      366,524,401,548,95,156,8,528, 430,527,556,203,554,523,
      501,530,55,252,585,19,540,71,204,502,504, 196,436,48,
      102,526,201,521,23,558,552,118,416,117,216,510,494,
      516,544,518)
我可以用一个有条件的语句来实现这一点,但考虑到类别的数量,我每次只需要一行就可以了。另外,虽然我的原始变量是数字,但值本身是随机的,所以我不能使用逻辑或范围语句

如何基于许多特定值创建此条件变量

我尝试了以下方法,但没有成功。下面是我想将不同类别归为一组的示例

classes <- c(549,162,210,222,44,96,62,208,525,202,149,442,427,
      564,423,106,422,546,205,560,127,536,34,261,568,
      366,524,401,548,95,156,8,528, 430,527,556,203,554,523,
      501,530,55,252,585,19,540,71,204,502,504, 196,436,48,
      102,526,201,521,23,558,552,118,416,117,216,510,494,
      516,544,518)

类您在%
中查找的
%不是
=

乙二醇


您正在%
中查找
%,而不是
=

乙二醇


一个好问题的可能重复是为什么要创建虚拟变量?对于很多事情,它会为你创建它们。OP不是在寻找什么吗?一个好问题的可能重复就是你为什么要创建虚拟变量?对于很多事情,它都会为你创造它们。OP要找的不是
cut
吗?这就成功了!谢谢我确实想为所有类别创建假人,所以我将尝试一下nnet,听起来它可能很有用。谢谢,但请注意上面@Dason的评论。这就成功了!谢谢我确实想为所有类别创建假人,所以我将尝试一下nnet,听起来它可能很有用。谢谢,但请注意上面@Dason的评论。
df$chem <- cbind(ifelse(df$class %in% classes ,1,0))
df$chem <-  as.numeric(df$class %in% classes)
library(nnet)

class_ind <- class.ind(df$class)
# add if you want to combine with the original
df_ind <- do.call(cbind, list(df, class.ind(df$class))