簡體   English   中英

如何在R中創建加法表?

[英]How do I create an addition table in R?

這應該很容易,但是我想不出一種更優雅的方式來創建加法表,例如:

x <- 1:3
cbind(x + x[1], x + x[2], x + x[3])

     [,1] [,2] [,3]
[1,]    2    3    4
[2,]    3    4    5
[3,]    4    5    6

我嘗試了各種版本的lapply()都無濟於事。

您可以使用outersapplyexpand.grid (在組合rowSums

x = 1:3
outer(x, x, "+")
#     [,1] [,2] [,3]
#[1,]    2    3    4
#[2,]    3    4    5
#[3,]    4    5    6

sapply(seq_along(x), function(i) sapply(seq_along(x), function(j) x[i]+x[j]))
#     [,1] [,2] [,3]
#[1,]    2    3    4
#[2,]    3    4    5
#[3,]    4    5    6

matrix(rowSums(expand.grid(x, x)), ncol = length(x))
#     [,1] [,2] [,3]
#[1,]    2    3    4
#[2,]    3    4    5
#[3,]    4    5    6

您可以這樣做:

m <- diag(length(x))
m[] <- x[col(m)] + x[row(m)]

#     [,1] [,2] [,3]
#[1,]    2    3    4
#[2,]    3    4    5
#[3,]    4    5    6

要么

matrix(x,length(x),length(x),byrow = TRUE) + x

暫無
暫無

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

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