1. 2. 3. 4. 5. 6
1 15 0 1 0 1 0
2 9 1 1 0 0 1
我怎样才能改变这一点,让我得到 15 行 0 1 0 1 0 和 9 行 1 1 0 0 1?
如果您的数据如下所示:
df <- data.frame(x = c(15, 9),
v1 = c(0, 1),
v2 = c(1, 1),
v3 = c(0, 0),
v4 = c(1, 0),
v5 = c(0, 1))
# x v1 v2 v3 v4 v5
# 1 15 0 1 0 1 0
# 2 9 1 1 0 0 1
你可以在基础 R 中尝试这个:
df[rep(row.names(df), df$x), -1]
# v1 v2 v3 v4 v5
# 1 0 1 0 1 0
# 1.1 0 1 0 1 0
# 1.2 0 1 0 1 0
# 1.3 0 1 0 1 0
# 1.4 0 1 0 1 0
# 1.5 0 1 0 1 0
# 1.6 0 1 0 1 0
# 1.7 0 1 0 1 0
# 1.8 0 1 0 1 0
# 1.9 0 1 0 1 0
# 1.10 0 1 0 1 0
# 1.11 0 1 0 1 0
# 1.12 0 1 0 1 0
# 1.13 0 1 0 1 0
# 1.14 0 1 0 1 0
# 2 1 1 0 0 1
# 2.1 1 1 0 0 1
# 2.2 1 1 0 0 1
# 2.3 1 1 0 0 1
# 2.4 1 1 0 0 1
# 2.5 1 1 0 0 1
# 2.6 1 1 0 0 1
# 2.7 1 1 0 0 1
# 2.8 1 1 0 0 1