我制作了一個看起來像這樣的向量:
v1 <- c("1 1","1 2","1 3",
"2 1","2 2","2 3",
"3 1","3 2","3 3",
"4 1","4 2","4 3",
"5 1","5 2","5 3",
"6 1","6 2","6 3")
它可以稱為 v1。
我想要的結果是 "1 1 1 1" "1 1 1 2" .... "6 6 6 6" (總共應該是 6x3x6x3=360-36=324 到一個新的向量 v2 中)
但是,我已經嘗試過apply(combn(v1, 2), 2, paste0, collapse=" "),但它并不完整。
我怎樣才能實作目標?
uj5u.com熱心網友回復:
獲取所有組合,然后粘貼:
v2 <- do.call(paste, expand.grid(v1, v1))
檢查輸出:
head(v2)
# [1] "1 1 1 1" "1 2 1 1" "1 3 1 1" "2 1 1 1" "2 2 1 1" "2 3 1 1"
tail(v2)
# [1] "5 1 6 3" "5 2 6 3" "5 3 6 3" "6 1 6 3" "6 2 6 3" "6 3 6 3"
length(v2)
# [1] 324
uj5u.com熱心網友回復:
您可以嘗試outer paste來實作
> (v2 <- c(outer(v1, v1, paste)))
[1] "1 1 1 1" "1 2 1 1" "1 3 1 1" "2 1 1 1" "2 2 1 1" "2 3 1 1" "3 1 1 1"
[8] "3 2 1 1" "3 3 1 1" "4 1 1 1" "4 2 1 1" "4 3 1 1" "5 1 1 1" "5 2 1 1"
[15] "5 3 1 1" "6 1 1 1" "6 2 1 1" "6 3 1 1" "1 1 1 2" "1 2 1 2" "1 3 1 2"
[22] "2 1 1 2" "2 2 1 2" "2 3 1 2" "3 1 1 2" "3 2 1 2" "3 3 1 2" "4 1 1 2"
[29] "4 2 1 2" "4 3 1 2" "5 1 1 2" "5 2 1 2" "5 3 1 2" "6 1 1 2" "6 2 1 2"
[36] "6 3 1 2" "1 1 1 3" "1 2 1 3" "1 3 1 3" "2 1 1 3" "2 2 1 3" "2 3 1 3"
[43] "3 1 1 3" "3 2 1 3" "3 3 1 3" "4 1 1 3" "4 2 1 3" "4 3 1 3" "5 1 1 3"
[50] "5 2 1 3" "5 3 1 3" "6 1 1 3" "6 2 1 3" "6 3 1 3" "1 1 2 1" "1 2 2 1"
[57] "1 3 2 1" "2 1 2 1" "2 2 2 1" "2 3 2 1" "3 1 2 1" "3 2 2 1" "3 3 2 1"
[64] "4 1 2 1" "4 2 2 1" "4 3 2 1" "5 1 2 1" "5 2 2 1" "5 3 2 1" "6 1 2 1"
[71] "6 2 2 1" "6 3 2 1" "1 1 2 2" "1 2 2 2" "1 3 2 2" "2 1 2 2" "2 2 2 2"
[78] "2 3 2 2" "3 1 2 2" "3 2 2 2" "3 3 2 2" "4 1 2 2" "4 2 2 2" "4 3 2 2"
[85] "5 1 2 2" "5 2 2 2" "5 3 2 2" "6 1 2 2" "6 2 2 2" "6 3 2 2" "1 1 2 3"
[92] "1 2 2 3" "1 3 2 3" "2 1 2 3" "2 2 2 3" "2 3 2 3" "3 1 2 3" "3 2 2 3"
[99] "3 3 2 3" "4 1 2 3" "4 2 2 3" "4 3 2 3" "5 1 2 3" "5 2 2 3" "5 3 2 3"
[106] "6 1 2 3" "6 2 2 3" "6 3 2 3" "1 1 3 1" "1 2 3 1" "1 3 3 1" "2 1 3 1"
[113] "2 2 3 1" "2 3 3 1" "3 1 3 1" "3 2 3 1" "3 3 3 1" "4 1 3 1" "4 2 3 1"
[120] "4 3 3 1" "5 1 3 1" "5 2 3 1" "5 3 3 1" "6 1 3 1" "6 2 3 1" "6 3 3 1"
[127] "1 1 3 2" "1 2 3 2" "1 3 3 2" "2 1 3 2" "2 2 3 2" "2 3 3 2" "3 1 3 2"
[134] "3 2 3 2" "3 3 3 2" "4 1 3 2" "4 2 3 2" "4 3 3 2" "5 1 3 2" "5 2 3 2"
[141] "5 3 3 2" "6 1 3 2" "6 2 3 2" "6 3 3 2" "1 1 3 3" "1 2 3 3" "1 3 3 3"
[148] "2 1 3 3" "2 2 3 3" "2 3 3 3" "3 1 3 3" "3 2 3 3" "3 3 3 3" "4 1 3 3"
[155] "4 2 3 3" "4 3 3 3" "5 1 3 3" "5 2 3 3" "5 3 3 3" "6 1 3 3" "6 2 3 3"
[162] "6 3 3 3" "1 1 4 1" "1 2 4 1" "1 3 4 1" "2 1 4 1" "2 2 4 1" "2 3 4 1"
[169] "3 1 4 1" "3 2 4 1" "3 3 4 1" "4 1 4 1" "4 2 4 1" "4 3 4 1" "5 1 4 1"
[176] "5 2 4 1" "5 3 4 1" "6 1 4 1" "6 2 4 1" "6 3 4 1" "1 1 4 2" "1 2 4 2"
[183] "1 3 4 2" "2 1 4 2" "2 2 4 2" "2 3 4 2" "3 1 4 2" "3 2 4 2" "3 3 4 2"
[190] "4 1 4 2" "4 2 4 2" "4 3 4 2" "5 1 4 2" "5 2 4 2" "5 3 4 2" "6 1 4 2"
[197] "6 2 4 2" "6 3 4 2" "1 1 4 3" "1 2 4 3" "1 3 4 3" "2 1 4 3" "2 2 4 3"
[204] "2 3 4 3" "3 1 4 3" "3 2 4 3" "3 3 4 3" "4 1 4 3" "4 2 4 3" "4 3 4 3"
[211] "5 1 4 3" "5 2 4 3" "5 3 4 3" "6 1 4 3" "6 2 4 3" "6 3 4 3" "1 1 5 1"
[218] "1 2 5 1" "1 3 5 1" "2 1 5 1" "2 2 5 1" "2 3 5 1" "3 1 5 1" "3 2 5 1"
[225] "3 3 5 1" "4 1 5 1" "4 2 5 1" "4 3 5 1" "5 1 5 1" "5 2 5 1" "5 3 5 1"
[232] "6 1 5 1" "6 2 5 1" "6 3 5 1" "1 1 5 2" "1 2 5 2" "1 3 5 2" "2 1 5 2"
[239] "2 2 5 2" "2 3 5 2" "3 1 5 2" "3 2 5 2" "3 3 5 2" "4 1 5 2" "4 2 5 2"
[246] "4 3 5 2" "5 1 5 2" "5 2 5 2" "5 3 5 2" "6 1 5 2" "6 2 5 2" "6 3 5 2"
[253] "1 1 5 3" "1 2 5 3" "1 3 5 3" "2 1 5 3" "2 2 5 3" "2 3 5 3" "3 1 5 3"
[260] "3 2 5 3" "3 3 5 3" "4 1 5 3" "4 2 5 3" "4 3 5 3" "5 1 5 3" "5 2 5 3"
[267] "5 3 5 3" "6 1 5 3" "6 2 5 3" "6 3 5 3" "1 1 6 1" "1 2 6 1" "1 3 6 1"
[274] "2 1 6 1" "2 2 6 1" "2 3 6 1" "3 1 6 1" "3 2 6 1" "3 3 6 1" "4 1 6 1"
[281] "4 2 6 1" "4 3 6 1" "5 1 6 1" "5 2 6 1" "5 3 6 1" "6 1 6 1" "6 2 6 1"
[288] "6 3 6 1" "1 1 6 2" "1 2 6 2" "1 3 6 2" "2 1 6 2" "2 2 6 2" "2 3 6 2"
[295] "3 1 6 2" "3 2 6 2" "3 3 6 2" "4 1 6 2" "4 2 6 2" "4 3 6 2" "5 1 6 2"
[302] "5 2 6 2" "5 3 6 2" "6 1 6 2" "6 2 6 2" "6 3 6 2" "1 1 6 3" "1 2 6 3"
[309] "1 3 6 3" "2 1 6 3" "2 2 6 3" "2 3 6 3" "3 1 6 3" "3 2 6 3" "3 3 6 3"
[316] "4 1 6 3" "4 2 6 3" "4 3 6 3" "5 1 6 3" "5 2 6 3" "5 3 6 3" "6 1 6 3"
[323] "6 2 6 3" "6 3 6 3"
uj5u.com熱心網友回復:
一個緊湊的解決方案levels interaction:
levels(interaction(v1, v1, sep = " "))
head(v)
# [1] "1 1 1 1" "1 2 1 1" "1 3 1 1" "2 1 1 1" "2 2 1 1" "2 3 1 1"
tail(v)
# [1] "5 1 6 3" "5 2 6 3" "5 3 6 3" "6 1 6 3" "6 2 6 3" "6 3 6 3"
length(v)
# [1] 324
上一個答案,帶pmap_chr expand.grid:
library(purrr)
v <- pmap_chr(expand.grid(v1, v1), paste)
length(v)
#[1] 324
uj5u.com熱心網友回復:
不確定這是否是您所追求的,但expand.grid可能有用:
library(dplyr)
expand.grid(v1,v1) %>%
data.frame() %>%
mutate(v2 = paste0(Var2," ",Var1)) %>%
pull(v2)
輸出:
[1] "1 1 1 1" "1 1 1 2" "1 1 1 3" "1 1 2 1" ... "6 3 6 1" "6 3 6 2" "6 3 6 3"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/518239.html
標籤:r细绳数据框向量组合
下一篇:在每三組列上運行一個函式
