讓你有以下陣列要創建for循環
vec_1 <- c('a','b','c')
vec_2 <- c('d','e','f')
vec_3 <- c('g','h','i')
vec_4 <- c('l','m','n')
在矩陣X
像這樣的一個跨差矩陣:
X <- matrix(c(vec_1, vec_2, vec_3, vec_4), nrow = 3, byrow = FALSE)
等於
> X
[,1] [,2] [,3] [,4]
[1,] "a" "d" "g" "l"
[2,] "b" "e" "h" "m"
[3,] "c" "f" "i" "n"
我想用一個for()
循環得到以下矩陣D
:
D <- matrix(c('a - d', 'b - e', 'c - f',
'a - g', 'b - h', 'c - i',
'a - l', 'b - m', 'c - n',
'd - g', 'e - h', 'f - i',
'd - l', 'e - m', 'f - n',
'g - l', 'h - m', 'i - n'),
nrow = 3, byrow = FALSE)
,正如你所看到的,是由每個X
柱橫差由:
> D
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] "a - d" "a - g" "a - l" "d - g" "d - l" "g - l"
[2,] "b - e" "b - h" "b - m" "e - h" "e - m" "h - m"
[3,] "c - f" "c - i" "c - n" "f - i" "f - n" "i - n"
在我背後的問題每一個字母是一個數值。
如何可以使用for()
循環我實現這個結果?
請用隨機數替換每個字母,當它來回答這個問題是非常有用的,你不需要去瘋狂paste()
!
你只是試圖讓'膏( 「列」,1:N)'? – Thomas
如果您定義了需要此類解決方案的基礎問題,您可能會得到一個很好的答案。就其本身而言,@Thomas告訴你所有你需要知道的...('膏(「列」,1:(N + 3))') –
我不是,因爲標有'行數「一欄根據我的計算,x「'應該是'N *(N - 1)/ 2'。 –