Your question still does not make sense: 20% of 130,000 is not 30,000. The simplest assumption that fixes all of your logical inconsistencies is that the dataset has 150,000 records, so I used that.
Here is one way to do it:
# sample data
set.seed(1) # for reproducible example
df <- data.frame(id=1:150000,
IsActive=sample(0:1,150000,replace=T,p=c(0.9,0.1)),
x=rnorm(150000), y=runif(150000),z=rpois(150000,l=1))
sum(df$IsActive==1) # validate
# [1] 14887
s1 <- sample(which(df$IsActive==1),5000)
s2 <- sample(which(df$IsActive==0),25000)
train <- df[c(s1,s2),]
test <- df[c(-s1,-s2),]
# validate
any(test$id %in% train$id) # train and test are disjoint
# [1] FALSE
sum(train$IsActive==1) # 5000
# [1] 5000
sum(test$IsActive==1) # the rest
# [1] 9887