私は、0から4の整数(私の離散変数の次数を表す)でのみ分類された項目(行)で作られたデータセットを持っています。 2年のデータ、1980年のデータ、1996年のデータ(列)です。データセットの異なる反復の生成
df <- read.table(text = "
1980 1996
1 1
2 4
4 1", header = T)
私の目標は、しかし現実に基づいているように、この仮想的なデータのために、それは3つの法則に従わなければならない中間年1984年、1988年と1992年
df.new <- data.frame(X1980 = NULL, X1984 = NULL, X1988 = NULL, X1992 = NULL, X1996 = NULL)
用データを生成することです:
-
を
- アイテムは1980年と1996年に同じ整数に割り当てられ、期間全体にわたって同じままです。
- 1980年から1996年に増減するアイテム与えられた時間ステップで1つの整数だけ変更することができます(アイテムは整数をスキップできません)。
df.new
が生成するので、思わ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
もちろん、私の3つの法律にも従うこのデータセットには複数のバリエーションがあります。
sim = 1000
このデータセットの法律を順守するループを作成するにはどうすればよいですか?
どのようなアイテム(どのデータベースでも)が私の3つの法律を破っていないことをどのように確認できますか?
現在、ループの前にはresults <- foreach (i = 1:sim, .combine="df") %dopar%
が試行されていますが、これまでに失敗しています。
何か助けや助言をいただければ幸いです。あなたが行うことができます