我想在每次N的时候重复data.frame的行数。结果应该是一个新的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因此,每行重复2次,字符仍然是字符,因子仍然是因子,数字仍然是数字,...
我的第一次尝试使用了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"发布于 2013-05-31 02:31:28
rep.row函数有时似乎会列出列,这会导致错误的内存劫持。我写了以下内容,看起来效果很好:
library(plyr)
rep.row <- function(r, n){
colwise(function(x) rep(x, n))(r)
}https://stackoverflow.com/questions/11121385
复制相似问题