通过从另一个R

时间:2017-01-04 23:14:07

标签: r

我有一个名为“data”的数据框:

data <-
            x                y 
            green-dog        3
            blue-dog         4
            red-cat          5
            yellow-cat       6

我需要创建一个名为“type”的新变量,如下所示:

data <-
                x                y      type
                green-dog        3      dog
                blue-dog         4      dog
                red-cat          5      cat
                yellow-cat       6      cat

2 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点,但如果只有两个类别,这是最简单的方法:

data <- data.frame(
    x = c("green-dog", "blue-dog", "red-cat", "yellow-cat"),
    y = 3:6)

data$type <- ifelse(grepl("dog", data$x), "dog", "cat")

请注意,正如所写的那样,任何没有“狗”的东西都会成为猫,即使“猫”也不存在。需要考虑的事项:

  • 如何处理NAs?
  • 你应该明确检查“cat”,还是只能作为默认(不是狗)选项?
  • 上/下案怎么样?
  • 你想要捕捉颜色吗?

如果您需要更复杂的内容,我建议您查看stringr包。

答案 1 :(得分:0)

我们可以使用data$type <- sub(".*-", "", data$x) data$type #[1] "dog" "dog" "cat" "cat"

轻松完成此操作
c.mirror.staticClass("com.foo.MyClass")