使用dplyr [duplicate]重复创建具有不同长度向量的 Dataframe

axr492tv  于 2023-04-27  发布在  其他
关注(0)|答案(1)|浏览(69)

此问题已在此处有答案

Unique combination of all elements from two (or more) vectors(7个回答)
2天前关闭。
我在R中有两个具有不同底层数据的 Dataframe .
第一个 Dataframe 包含字符数据,而第二个 Dataframe 包含数字数据。每个 Dataframe 的长度不同。
有没有一种方法可以将这些不同长度和不同数据类型的 Dataframe 组合成一个 Dataframe 。
目标是创建具有重复数据的6x2 Dataframe 。
示例:

a = c("1M", "2M") # 2x1 vector
b = c(0.75, 0.80, 0.85) # 3x1 vector

a = as_tibble(a)
b = as_tibble(b)

c1 = c("1M", "1M", "1M", "2M", "2M", "2M")
c2 = c(0.75, 0.80, 0.85, 0.75, 0.80, 0.85)

result_mat = cbind(c1, c2)
result_mat = as_tibble(result_mat) # 6x2 data frame
ldioqlga

ldioqlga1#

你可以使用rep来重复你的向量,使用参数eachtimes

data.frame(
  c1 = rep(a, each = length(b)),
  c2 = rep(b, times = length(a))
)

或者,如果你在tidyverse中工作,你可以使用crossing

tidyr::crossing(a, b)

输出

c1   c2
1 1M 0.75
2 1M 0.80
3 1M 0.85
4 2M 0.75
5 2M 0.80
6 2M 0.85

相关问题