我在数据集中有一个变量(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,只使用第一个元素
任何人都可以帮我解决这个问题?谢谢!
答案 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)
如果我理解你的问题,你想从数据框中创建三个组。
require(stats)
V7 <- runif(137, min=0, max=110)
V1 <- runif(137, min=0, max=10)
data<-data.frame(V1,V7)
g1 = data[data$V7 >= 75 & data$V7 <= 100,]
g1$V7
g2=data[data$V7 >= 60 & data$V7 <= 74,]
g2$V7
g3 =data[data$V7 >= 0 & data$V7 <= 59,]
g3$V7