我有一个数据框,如下所示 我们称之为DF1
我需要生成一个新的数据框,如下所示
让我们称之为df2
df2只是重复除了df1
中第一列A之外的其他列df1 [1,1]是1.所以,我需要在df2中生成三行,这些行不包含1,相应地保持其他列的值不变。
类似地,df1 [2,1]是2.因此,我需要在df2中的三行不包括2而在1到4之间的其他三行保持其他列的值相应地保持不变。请帮我这样做
提前致谢
答案 0 :(得分:2)
这是基于R的想法,
d2 <- df[rep(rownames(df), each = 3), ]
d2$A <- unlist(lapply(df$A, function(i) setdiff(seq(4), i)))
给出,
A B C D 1 2 2 3 4 1.1 3 2 3 4 1.2 4 2 3 4 2 1 1 2 3 2.1 3 1 2 3 2.2 4 1 2 3 3 1 3 4 2 3.1 3 3 4 2 3.2 4 3 4 2 4 1 2 3 4 4.1 2 2 3 4 4.2 3 2 3 4
注意:您可以使用rownames(d2) <- NULL
删除rownames