簡體   English   中英

在 R 中,如何獲得某些向量值的所有可能組合?

[英]In R, how do I get all possible combinations of the values of some vectors?

背景:我有一個需要一些參數的函數。 我想要所有可能的參數組合的函數結果。

一個簡化的例子:

f <- function(x, y) { return paste(x, y, sep=",")} 
colors = c("red", "green", "blue") 
days = c("Monday", "Tuesday") 

我希望我的結果看起來像

     color    day         f    
[1,] "red"    "Monday"    "red,Monday" 
[2,] "red"    "Tuesday"   "red,Tuesday"
[3,] "green"  "Monday"    "green,Monday"
[4,] "green"  "Tuesday"   "green,Tuesday"
[5,] "blue"   "Monday"    "blue,Monday"
[6,] "blue"   "Tuesday"   "blue,Tuesday"

我的想法是創建一個包含colorday列的矩陣,使用現有的向量colorsdays填充它,為結果初始化一個空列,然后使用循環對每個矩陣行調用一次 f 並將結果寫入最后柱子。 但我不知道如何從colorsdays向量輕松生成矩陣。 我嘗試搜索它,但我得到的所有結果都是針對combn函數的,它做了一些不同的事情。

在這種簡化的情況下, colorsdays是因素,但在我的真實示例中,情況並非如此。 函數的一些參數是整數,所以我的真實向量可能看起來更像1, 2, 3並且函數將要求將它作為數字傳遞給它。 所以請不要依賴於因子水平的解決方案,如果它們不能以某種方式用於處理整數。

我想你只想要expand.grid

> colors = c("red", "green", "blue") 
> days = c("Monday", "Tuesday") 
> expand.grid(colors,days)
   Var1    Var2
1   red  Monday
2 green  Monday
3  blue  Monday
4   red Tuesday
5 green Tuesday
6  blue Tuesday

而且,如果要在同一行中指定列名:

> expand.grid(color = colors, day = days)
  color     day
1   red  Monday
2 green  Monday
3  blue  Monday
4   red Tuesday
5 green Tuesday
6  blue Tuesday

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM