3 回答

TA貢獻1846條經驗 獲得超7個贊
您可以使用它,但是可能有一個更簡單的解決方案:
R> apply(expand.grid(vars, vis), 1, paste, collapse=".")
[1] "SR.1" "PL.1" "SR.2" "PL.2" "SR.3" "PL.3"
expand.grid還給一個data.frame與使用時apply,apply將其轉換為matrix。這只是不必要的(并且在大數據上效率低下)。outer給出一個matrix并且也接受函數參數。在海量數據上也將非常有效。
使用outer:
as.vector(outer(vars, vis, paste, sep="."))
# [1] "SR.1" "PL.1" "SR.2" "PL.2" "SR.3" "PL.3"

TA貢獻1772條經驗 獲得超6個贊
要保持問題中請求的字符串的順序,可以對這兩種方法使用以下兩種修改:
更改向量的順序并以相反的順序合并
apply(expand.grid(vis, vars), 1, function(x) paste(x[2], x[1], sep="."))
[1] "SR.1" "SR.2" "SR.3" "PL.1" "PL.2" "PL.3"
或在轉換為向量之前轉置矩陣:
as.vector(t(outer(vars, vis, paste, sep=".")))
[1] "SR.1" "SR.2" "SR.3" "PL.1" "PL.2" "PL.3"
- 3 回答
- 0 關注
- 647 瀏覽
添加回答
舉報