【问题标题】:Importing incomplete data to matrix in R将不完整的数据导入R中的矩阵
【发布时间】:2014-01-05 16:37:15
【问题描述】:

我目前正在尝试操作一个充满零的矩阵,我想用数字填充它。 矩阵的目的是描述密度的分布。

问题是,为了做到这一点,我只有三个向量来描述矩阵中的非零值。 即第一个包含包含数字的单元格的纵坐标值,第二个包含横坐标值,第三个包含密度值。

例如,如果我在 [3,2] 单元格中的密度为 3,那么我将拥有三个向量:

vector1 = (3), vector2 = (2), vector3 = (3)

我没有成功尝试用 for 循环填充它,由于我对 R 不是很熟练,所以很难弄清楚如何填充该矩阵。

提前感谢您的回答,如果您有任何问题,请不要犹豫。

【问题讨论】:

  • m[ cbind( vector1 , vector2 ) ] <- vector3 其中m 是矩阵对象。

标签: r math matrix statistics


【解决方案1】:

使用 R 内置的矢量化方法,这是一件轻而易举的事。您正在寻找[<- 替换功能。这是一个例子:

m <- matrix( 0 , 4 , 4 )
#     [,1] [,2] [,3] [,4]
#[1,]    0    0    0    0
#[2,]    0    0    0    0
#[3,]    0    0    0    0
#[4,]    0    0    0    0


v1 <- c( 3 , 2 , 1 )
v2 <-  c( 2 , 1 , 4 )
v3 <- c( 10, 20 , 30 )

m[ cbind( v1 , v2 ) ] <- v3
#     [,1] [,2] [,3] [,4]
#[1,]    0    0    0   30
#[2,]   20    0    0    0
#[3,]    0   10    0    0
#[4,]    0    0    0    0

【讨论】:

    猜你喜欢
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多