所以......我有一个包含许多类别的变量的大型数据集。我想创建新的变量,将其中一些类别组合成一个。
我可以用条件语句来做到这一点,但考虑到类别的数量,我当时需要永远走一行。此外,虽然我的原始变量是数字,但值本身是随机的,所以我不能使用逻辑或范围语句。
如何根据许多特定值创建此条件变量?
我尝试了以下内容,但没有成功。下面是我想要分组的不同类别的示例。
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)
所以这对我来说似乎很直观,但它不起作用。
df$chem<- cbind(ifelse(df$class == classes ,1,0))
毋庸置疑我是初学者,这可能不是那么难做,但我一直在寻找这个特定问题的解决方案,我似乎无法找到它。我错过了什么?谢谢!
答案 0 :(得分:5)
您正在寻找%in%
而不是==
例如
df$chem <- cbind(ifelse(df$class %in% classes ,1,0))
或使用逻辑到数字转换
df$chem <- as.numeric(df$class %in% classes)
如果您想要所有中的各个虚拟变量<{1}}中的类别,那么您可以使用包df$class
中的class.ind
函数(推荐的套餐)
nnet