使用if else语句对数字变量进行分组

时间:2013-12-05 01:31:16

标签: r if-statement

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

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

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

任何人都可以帮我解决这个问题?谢谢!

2 个答案:

答案 0 :(得分:3)

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))

答案 1 :(得分:0)

如果我理解你的问题,你想从数据框中创建三个组。

假设您有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