在data.frame和向量上使用expand.grid

问题描述 投票:0回答:1
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

我怎样才能达到这个结果?

r dataframe
1个回答
1
投票

您可以使用

crossing
包中的
tidyr

tidyr::crossing(df, v)

或者如果您想在基础 R 中执行此操作,这里是一种可能的解决方案:

df2 <- df[rep(seq_len(nrow(df)), each = length(v), ]
df2$v <- rep_len(v, nrow(df2))
© www.soinside.com 2019 - 2024. All rights reserved.