我想重复 data.frame 的行,每个 N
次。结果应该是一个新的 data.frame
(使用 nrow(new.df) == nrow(old.df) * N
)保留列的数据类型。
N = 2 的示例:
A B C
A B C 1 j i 100
1 j i 100 --> 2 j i 100
2 K P 101 3 K P 101
4 K P 101
因此,每行重复两次,字符仍然是字符,因子仍然是因子,数字仍然是数字,...
我的第一次尝试使用了 apply: apply(old.df, 2, function(co) rep(co, each = N))
,但这将我的值转换为字符,我得到:
A B C
[1,] "j" "i" "100"
[2,] "j" "i" "100"
[3,] "K" "P" "101"
[4,] "K" "P" "101"
最佳答案
df <- data.frame(a = 1:2, b = letters[1:2])
df[rep(seq_len(nrow(df)), each = 2), ]
关于重复 data.frame 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11121385/