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))