-4

所以这是我的问题:我得到了一个数据集,指令是:

增长模式是通过将 X 变量转换为一个新的分类变量来生成的,该变量可以命名为“增长”。第一类分配给 X 变量中介于 15 到 50 之间的岛屿。

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

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

但我不知道该放什么命令???部分。

4

1 回答 1

2

让我们得到一些可重现的东西:

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

通过告诉 R“大于 15小于 50”来回答您的确切问题,即如何写“介于 15 和 50 之间”:

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

这给了你一个真/假的向量。当您的条件匹配(在 15 到 50 之间)时,它的长度相同x并且为 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)
于 2013-04-04T21:18:12.127 回答