0
変数によってデータフレームを作成したいと思います。 var.1が見つからなかったので、変数のdata.frameを作成します。
p.1 <- .1
p.2 <- .3
p.3 <- .6
l <- 1e2
df <- data.frame(
var.1 =
sample(0:1, l, prob = c(1 - p.1, p.1), replace = TRUE))
df <- df %>%
mutate(
var.2 = ifelse(
var.1 == 1, 0,
sample(0:1, l, prob = c(1 - p.2, p.2), replace = TRUE)),
var.3 = ifelse(
var.1 == 1 | var.2 == 1, 0,
sample(0:1, l, prob = c(1 - p.3, p.3), replace = TRUE))
)
それが1つのステップでDFを作成することですでもよりよいが、これは動作していない:私はこのdplyr
スタイルのコードを使用することによって、これを達成することができます
df <- data.frame(
var.1 =
sample(0:1, l, prob = c(1 - p.1, p.1), replace = TRUE),
var.2 = ifelse(
var.1 == 1, 0,
sample(0:1, l, prob = c(1 - p.2, p.2), replace = TRUE)
),
var.3 = ifelse(
var.1 == 1 | var.2 == 1, 0,
sample(0:1, l, prob = c(1 - p.3, p.3), replace = TRUE)
)
)
別の試みは、いずれかの動作していない、これはmutate_implでエラーエラー(.dataセクション、ドット)をスローします。列var.1
は、長さが0(行数)または1、いない100でなければなりません:
df <- data.frame()
df <- df %>%
mutate(
var.1 =
sample(0:1, l, prob = c(1 - p.1, p.1), replace = TRUE),
var.2 = ifelse(
var.1 == 1, 0,
sample(0:1, l, prob = c(1 - p.2, p.2), replace = TRUE)
),
var.3 = ifelse(
var.1 == 1 | var.2 == 1, 0,
sample(0:1, l, prob = c(1 - p.3, p.3), replace = TRUE)
)
)
実際、私は非常に多くの変数を持っており、私はこの作業にもっと経済的な解決策が必要です。
近かった........... – jaySf