R 生成数据集的不同迭代

R 生成数据集的不同迭代,r,dataframe,foreach,R,Dataframe,Foreach,我有一个由项目(行)组成的数据集,这些项目(行)仅用0到4的整数(表示离散变量的度数)进行分类。我有两年的数据,1980年和1996年(列) 当然,这个数据集有多种变体,它们也遵循我的3条定律 我应该如何编写一个循环来生成此数据集的sim=1000守法迭代 我怎样才能确保没有任何项目(在任何数据库中)违反我的三条定律中的任何一条 当前正在尝试结果您可以执行以下操作: library(foreach) results <- foreach(i = 1:100) %dopar% { for

我有一个由项目(行)组成的数据集,这些项目(行)仅用0到4的整数(表示离散变量的度数)进行分类。我有两年的数据,1980年和1996年(列)

当然,这个数据集有多种变体,它们也遵循我的3条定律

我应该如何编写一个循环来生成此数据集的
sim=1000
守法迭代

我怎样才能确保没有任何项目(在任何数据库中)违反我的三条定律中的任何一条

当前正在尝试
结果您可以执行以下操作:

library(foreach)
results <- foreach(i = 1:100) %dopar% {
  foreach(i = 1:nrow(df), .combine = "rbind") %do% {

    lst <- ifelse(df$X1980[i] > df$X1996[i], 
                  list(sort(sample(df$X1980[i]:df$X1996[i],3,replace = T), decreasing = T)),
                  list(sort(sample(df$X1980[i]:df$X1996[i],3,replace = T), decreasing = F)))

    lst <- c(df$X1980[i], unlist(lst), df$X1996[i])

    data.frame(X1980 = lst[1], 
               X1984 = lst[2], 
               X1988 = lst[3], 
               X1992 = lst[4], 
               X1996 = lst[5])
  }
}
do.call("rbind", results)
库(foreach)
结果你可以做:

library(foreach)
results <- foreach(i = 1:100) %dopar% {
  foreach(i = 1:nrow(df), .combine = "rbind") %do% {

    lst <- ifelse(df$X1980[i] > df$X1996[i], 
                  list(sort(sample(df$X1980[i]:df$X1996[i],3,replace = T), decreasing = T)),
                  list(sort(sample(df$X1980[i]:df$X1996[i],3,replace = T), decreasing = F)))

    lst <- c(df$X1980[i], unlist(lst), df$X1996[i])

    data.frame(X1980 = lst[1], 
               X1984 = lst[2], 
               X1988 = lst[3], 
               X1992 = lst[4], 
               X1996 = lst[5])
  }
}
do.call("rbind", results)
库(foreach)
结果
for(i in 1:nrow(df)){

lst <- ifelse(df$X1980[i] > df$X1996[i], 
              list(sort(sample(df$X1980[i]:df$X1996[i],3,replace = T), decreasing = T)),
              list(sort(sample(df$X1980[i]:df$X1996[i],3,replace = T), decreasing = F)))

  lst <- c(df$X1980[i], unlist(lst), df$X1996[i])

  df.new <- rbind(df.new, data.frame(X1980 = lst[1], 
                                 X1984 = lst[2], 
                                 X1988 = lst[3], 
                                 X1992 = lst[4], 
                                 X1996 = lst[5]))
}
  X1980 X1984 X1988 X1992 X1996
1     1     1     1     1     1
2     2     3     4     4     4
3     4     4     3     2     1
library(foreach)
results <- foreach(i = 1:100) %dopar% {
  foreach(i = 1:nrow(df), .combine = "rbind") %do% {

    lst <- ifelse(df$X1980[i] > df$X1996[i], 
                  list(sort(sample(df$X1980[i]:df$X1996[i],3,replace = T), decreasing = T)),
                  list(sort(sample(df$X1980[i]:df$X1996[i],3,replace = T), decreasing = F)))

    lst <- c(df$X1980[i], unlist(lst), df$X1996[i])

    data.frame(X1980 = lst[1], 
               X1984 = lst[2], 
               X1988 = lst[3], 
               X1992 = lst[4], 
               X1996 = lst[5])
  }
}
do.call("rbind", results)