如何在r中制定陈述?

时间:2013-04-04 19:14:01

标签: r

所以这是我的问题:我收到了一个数据集,说明是:

  

通过将X变量转换为新的分类变量(可称为“增长”)来生成增长模式。第一个类别分配给X变量中的岛屿,范围在15到50之间。

所以这就是问题所在,但我主要关注的是如何写“R语言中的15到50之间。这就是我所拥有的”

growth$mediumgrowth.islands <- growth$SasiaUrban.X[growth$SasiaUrban.X ???]

但是我不知道要把什么命令放进去???一部分。

1 个答案:

答案 0 :(得分:2)

让我们获得可重现的东西:

set.seed(47)
df <- data.frame(x = sample(60, 100, replace = TRUE))

你的确切问题,如何写“15到50之间”的答案是告诉R“大于15 小于50”:

## What's between 15 and 50?
df$x > 15 & df$x <= 50

这会给你一个TRUE / FALSE的向量。它与x的长度相同,当您的条件匹配时(15到50之间)为TRUE,否则为FALSE。 (注意:我使用大于15且小于或等于50,你可能想要调整它。)填写你的“???”将是growth$SasiaUrban.X[growth$SasiaUrban.X > 15 & growth$SasiaUrban.X <= 50]

## We could assign this as a new column
df$between15and50 <- df$x > 15 & df$x <= 50

如果您想要更多类别,一次性完成这些操作是有意义的,cut可以轻松完成:

## Or we could use cut
cut(df$x, breaks = c(0, 15, 50, 100))

df$category <- cut(df$x, breaks = c(0, 15, 50, 100))

## Adding labels instead
df$category2 <- cut(df$x, breaks = c(0, 15, 50, 100),
    labels = c("low", "medium", "high"))

head(df)