所以这是我的问题:我一直在考虑数据集和指令是:如何在r中编写一个语句?
增长模式是通过将X变量到一个新的分类变量,它们可被称为“保增长”产生。第一类被分配到15到50之间的X变量中的岛屿。
这就是问题所在,但我最头疼的是如何编写“在R语言中的15到50之间”。我有
growth$mediumgrowth.islands <- growth$SasiaUrban.X[growth$SasiaUrban.X ???]
但我不知道是什么命令将在???部分
所以这是我的问题:我一直在考虑数据集和指令是:如何在r中编写一个语句?
增长模式是通过将X变量到一个新的分类变量,它们可被称为“保增长”产生。第一类被分配到15到50之间的X变量中的岛屿。
这就是问题所在,但我最头疼的是如何编写“在R语言中的15到50之间”。我有
growth$mediumgrowth.islands <- growth$SasiaUrban.X[growth$SasiaUrban.X ???]
但我不知道是什么命令将在???部分
让我们得到一些重复性:
set.seed(47)
df <- data.frame(x = sample(60, 100, replace = TRUE))
你确切的问题,如何写“15至50”是通过讲述R“小于50大于15 和”回答:
## 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)
谢谢你的作品! – user2243433 2013-04-05 03:16:45
你的问题不明确(而且你应该在特定的标题到您的问题),但它听起来像是在寻找cut函数,它将一个连续变量转变为一个分类的分类变量。 (但是,你的问题没有说明第二,第三等类别是什么......) – 2013-04-04 19:16:56