所以这是我的问题:我收到了一个数据集,说明是:
通过将X变量转换为新的分类变量(可称为“增长”)来生成增长模式。第一个类别分配给X变量中的岛屿,范围在15到50之间。
所以这就是问题所在,但我主要关注的是如何写“R语言中的15到50之间。这就是我所拥有的”
growth$mediumgrowth.islands <- growth$SasiaUrban.X[growth$SasiaUrban.X ???]
但是我不知道要把什么命令放进去???一部分。
答案 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)