【问题标题】:Group numeric variable using if else statement使用 if else 语句对数值变量进行分组
【发布时间】:2013-12-05 01:31:16
【问题描述】:

我在数据集中有一个变量 (V7)(总观察值为 137),范围从 0 到 100,我想创建一个新变量 (V12),它将变量 (V7) 分为 75-100 的 3 组,60-74, 0-59。我用

if(data$V7>="75"){
  V12 <- 1
} else {
  if(data$V7>="60"){
    V12 <- 2
  } else {
    V12 <- 3
  }
}

但我明白了 警告信息: 1: 在 if (data$V7 >= "75") { : 条件的长度 > 1 并且只使用第一个元素 2: 在 if (data$V7 >= "60") { : 条件的长度 > 1,并且只使用第一个元素

有人可以在这件事上帮助我吗?谢谢!

【问题讨论】:

  • 这是什么编程语言?您应该用使用的语言标记您的问题。
  • jlhoward,谢谢!我设法将其分组到间隔,但是如何为该组创建新变量?因为我需要它来做进一步的统计。

标签: r if-statement


【解决方案1】:
set.seed(1)      # so this is reproducible
df     <- data.frame(V7=sample(0:100,50))
df$V12 <- 0
df$V12 <- findInterval(df$V7,c(0,60,75,100))

【讨论】:

  • jlhoward,我明白了。非常感谢你! :)
【解决方案2】:

如果我正确理解了您的问题,您想从一个数据框中创建三个组。

假设您有 2 个向量。让我们创建一些随机数并制作您的数据

require(stats)
V7 <- runif(137, min=0, max=110)
V1 <- runif(137, min=0, max=10)
data<-data.frame(V1,V7)

75-100 级

g1 = data[data$V7 >= 75  & data$V7 <= 100,]
g1$V7

60-74 级

g2=data[data$V7 >= 60 & data$V7 <= 74,]
g2$V7

0-59 级

g3 =data[data$V7 >= 0 & data$V7 <= 59,]
g3$V7

【讨论】:

  • 嗨,ToNoy,谢谢!数据集实际上共有 11 个变量,其中一个变量的范围为 0 - 100,我想将它们分成 3 个区间并为其创建一个新变量。您的解决方案对我非常有用,因为以后我也需要这些知识来运行模拟。非常感谢! :)
猜你喜欢
  • 1970-01-01
  • 2014-03-05
  • 1970-01-01
  • 2021-09-14
  • 1970-01-01
  • 2011-11-21
  • 1970-01-01
  • 1970-01-01
  • 2020-10-29
相关资源
最近更新 更多