在 r 中按 1 列取消数据框分组

问题描述 投票:0回答:1
    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?

r
1个回答
0
投票

如果您的数据如下所示:

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
© www.soinside.com 2019 - 2024. All rights reserved.