df <- data.frame(x=c("a","b","c"), y = c(100,200,300))
v <- 1:4
我正在尝试将向量
v
添加到数据帧 df
,以便 df
的每一行与 v
的每个元素组合
x y v
a 100 1
a 100 2
a 100 3
a 100 4
b 200 1
b 200 2
b 200 3
b 200 4
c 300 1
c 300 2
c 300 3
c 300 4
我怎样才能达到这个结果?
您可以使用
crossing
包中的 tidyr
。
tidyr::crossing(df, v)
或者如果您想在基础 R 中执行此操作,这里是一种可能的解决方案:
df2 <- df[rep(seq_len(nrow(df)), each = length(v), ]
df2$v <- rep_len(v, nrow(df2))