df <- data.frame(var1 = c('a', 'b', 'c'), var2 = c('d', 'e', 'f'),
freq = 1:3)
Run Code Online (Sandbox Code Playgroud)
扩展上面data.frame的前两列的最简单方法是什么,以便每行显示"freq"列中指定的次数?
换句话说,从这里开始:
df
var1 var2 freq
1 a d 1
2 b e 2
3 c f 3
Run Code Online (Sandbox Code Playgroud)
对此:
df.expanded
var1 var2
1 a d
2 b e
3 b e
4 c f
5 c f
6 c f
Run Code Online (Sandbox Code Playgroud) 我不确定使用哪个函数来执行以下操作:
library(data.table)
dt = data.table(a = 1:4, b = 1:2)
dt[, rep(a[1], 3), by = b]
# b V1
#1: 1 1
#2: 1 1
#3: 1 1
#4: 2 2
#5: 2 2
#6: 2 2
Run Code Online (Sandbox Code Playgroud)
双方summarise并mutate不满意这个长度:
library(dplyr)
df = data.frame(a = 1:4, b = 1:2)
df %.% group_by(b) %.% summarise(rep(a[1], 3))
#Error: expecting a single value
df %.% group_by(b) %.% mutate(rep(a[1], 3))
#Error: incompatible size (3), expecting 2 (the group size) or 1
Run Code Online (Sandbox Code Playgroud)