R 随机数序列与常数
样本数据R 随机数序列与常数,r,sequence,sample,R,Sequence,Sample,样本数据 set.seed(1) data=data.frame("id"=c(sort(rep(1:100,3))), "survey"=c(rep(1:3,100))) data$age = ifelse(data$survey == 1, sample(30:60,100,replace=T),0) 目标是为调查值等于1的每一行获得一个随机数年龄。然后我想把每个年龄加上3作为一个序列。例如,如果调查时的年龄等于1是20,那么调查2时的年龄等于23,调查3时
set.seed(1)
data=data.frame("id"=c(sort(rep(1:100,3))),
"survey"=c(rep(1:3,100)))
data$age = ifelse(data$survey == 1, sample(30:60,100,replace=T),0)
目标是为调查值等于1的每一行获得一个随机数年龄。然后我想把每个年龄加上3作为一个序列。例如,如果调查时的年龄等于1是20,那么调查2时的年龄等于23,调查3时的年龄等于26。我在下面展示了示例小数据
datasmall = data=data.frame("id"=c(sort(rep(1:4,3))),
"survey"=c(rep(1:3,4)),
"age"=c(50,53,56,52,55,58,44,47,50,39,42,45))
您可以通过各自的子集简单地添加三个
set.seed(1)
data$age <- NA # if column does not yet exist
data$age[data$survey == 1] <- sample(30:60, length(data$age[data$survey == 1]),
replace=TRUE)
data$age[data$survey == 2] <- data$age[data$survey == 1] + 3
data$age[data$survey == 3] <- data$age[data$survey == 2] + 3
head(data)
# id survey age
# 1 1 1 38
# 2 1 2 41
# 3 1 3 44
# 4 2 1 41
# 5 2 2 44
# 6 2 3 47
set.seed(1)
data$age这将更为通用:data$age2