如何根据r中的多个因素对数据点进行分类

如何根据r中的多个因素对数据点进行分类,r,R,我想在一个数据集中按因素的级别对案例进行分类。以下是一个例子: 假设数据帧是这样的 (foo <- data.frame(cat1 = c("a", "b", "c"), cat2 = c("two", "two", "one"), cat3 = c("alpha", "beta", "beta"))) ## cat1 cat2 cat3 ## 1 a two alpha ## 2 b tw

我想在一个数据集中按因素的级别对案例进行分类。以下是一个例子:

假设数据帧是这样的

(foo <- data.frame(cat1 = c("a", "b", "c"),
                   cat2 = c("two", "two", "one"),
                   cat3 = c("alpha", "beta", "beta")))

##   cat1 cat2  cat3
## 1    a  two alpha
## 2    b  two  beta
## 3    c  one  beta
基本上,我希望得到一个如下所示的数据帧

(foo_res <- cbind(foo, group = c(4,11,9)))

##   cat1 cat2  cat3 group
## 1    a  two alpha     4
## 2    b  two  beta    11
## 3    c  one  beta     9

(foo_res您可以使用
merge

> names(foo2) <- names(foo)
> foo2$group <- rownames(foo2)
> merge(foo, foo2, all=FALSE)
  cat1 cat2  cat3 group
1    a  two alpha     4
2    b  two  beta    11
3    c  one  beta     9
> names(foo2) <- names(foo)
> foo2$group <- rownames(foo2)
> merge(foo, foo2, all=FALSE)
  cat1 cat2  cat3 group
1    a  two alpha     4
2    b  two  beta    11
3    c  one  beta     9
> foo <- data.frame(cat1 = c("a", "b", "c"),
                     cat2 = c("two", "two", "one"),
                     cat3 = c("alpha", "beta", "beta"))

> foo2 <- expand.grid(c("a", "b", "c"),
                          c("one", "two"),
                          c("alpha", "beta"))