Sis*_*sse 4 r repeat dataframe
我在互联网上搜索过,但我找不到解决问题的办法.我有一个数字和字符的数据框:
mydf <- data.frame(col1=c(1, 2, 3, 4),
col2 = c(5, 6, 7, 8),
col3 = c("a", "b", "c", "d"), stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)
是myDF:
col1 col2 col3
1 5 a
2 6 b
3 7 c
4 8 d
Run Code Online (Sandbox Code Playgroud)
我想重复一遍
col1 col2 col3
1 5 a
1 5 a
1 5 a
2 6 b
2 6 b
2 6 b
3 7 c
3 7 c
3 7 c
4 8 d
4 8 d
4 8 d
Run Code Online (Sandbox Code Playgroud)
使用apply(mydf, 2, function(x) rep(x, each = 3))将给出正确的重复,但不会像我希望的那样分别保留col1,col2和col3的类,如数字,数字和字符.这是一个构造的示例,在我的数据框中设置每列的类有点单调乏味.
有没有办法在保存课程的同时进行重复?
Ric*_*ton 10
它比你想象的还要容易.
index <- rep(seq_len(nrow(mydf)), each = 3)
mydf[index, ]
Run Code Online (Sandbox Code Playgroud)
这也避免了隐式循环apply.
这是一个不幸且意外的类转换(无论如何,我也是如此)。这是一个简单的解决方法,它利用了 data.frame 只是一个特殊列表这一事实。
data.frame(lapply(mydf, function(x) rep(x, each = 3)))
Run Code Online (Sandbox Code Playgroud)
(有人知道为什么提问者观察到的行为不应该被报告为错误吗?)