小编ros*_*ose的帖子

将矩阵列与R中的向量元素相乘的最快方法

我有一个矩阵m和一个向量v.我想将第一列矩阵乘以m向量的第一个元素v,并将第二列矩阵乘以向量的第二m个元素v,依此类推.我可以使用以下代码完成它,但我正在寻找一种不需要两个转置调用的方法.我怎样才能在R中更快地做到这一点?

m <- matrix(rnorm(120000), ncol=6)
v <- c(1.5, 3.5, 4.5, 5.5, 6.5, 7.5)

system.time(t(t(m) * v))

#   user  system elapsed 
#   0.02    0.00    0.02 
Run Code Online (Sandbox Code Playgroud)

r

37
推荐指数
2
解决办法
2万
查看次数

查找重复行在R数据帧中重复的次数

我有一个数据框,如下例所示

a = c(1, 1, 1, 2, 2, 3, 4, 4)
b = c(3.5, 3.5, 2.5, 2, 2, 1, 2.2, 7)
df <-data.frame(a,b)
Run Code Online (Sandbox Code Playgroud)

我可以通过以下代码从R数据框中删除重复的行,但是如何找到每个重复行重复的次数?我需要结果作为向量.

unique(df)
Run Code Online (Sandbox Code Playgroud)

要么

df[!duplicated(df), ]
Run Code Online (Sandbox Code Playgroud)

r

22
推荐指数
4
解决办法
5万
查看次数

将矩阵乘以向量的最快方法

我有一个矩阵mat和一个向量v.我想将第一列矩阵乘以mat向量的第一个元素,v并将第二列矩阵乘以向量的第二mat个元素v.我可以如图所示做到这一点.如果我们得到一个大矩阵,我怎样才能在R中更快地做到这一点?

    mat = matrix(rnorm(1500000), ncol= 100)
    v= rnorm(100)
    > system.time( mat %*% diag(v))
      user  system elapsed 
      0.02    0.00    0.02 
Run Code Online (Sandbox Code Playgroud)

r

13
推荐指数
3
解决办法
3877
查看次数

查找R中向量元素的第一个变化的索引

我有一个向量v,我想找到R中向量元素的第一个变化的索引.我该怎么做?例如

v = c(1, 1, 1, 1, 1, 1, 1, 1.5, 1.5, 2, 2, 2, 2, 2)
Run Code Online (Sandbox Code Playgroud)

r

12
推荐指数
4
解决办法
3887
查看次数

从R中的每列矩阵创建列表

我有一个矩阵M,我想创建3个列表,每个列表包含矩阵的行名称,M为fisrt列表检查,我想要m[, 1]$a = 1m[ ,1]$b = 2.如何在R中为每列执行此操作?

    m
      [,1] [,2] [,3]
  a    1    3    5
  b    2    4    6
Run Code Online (Sandbox Code Playgroud)

我试过这段代码,但这不是我想要的结果

  > list(m[, 1])
  [[1]]
   a b 
   1 2
Run Code Online (Sandbox Code Playgroud)

r

7
推荐指数
1
解决办法
2万
查看次数

找到向量的哪个元素在R中的两个值之间

我有两个向量xy.我想找出xvector的两个元素之间的哪些元素y.我怎么能在R?

x = c( .2, .4, 2.1, 5.3, 6.7, 10.5)
y = c( 1, 7)
Run Code Online (Sandbox Code Playgroud)

我写了以下代码,但它没有给我正确的结果.

> x = x[ x >= y[1] && x <= y[2]]
> x
numeric(0)
Run Code Online (Sandbox Code Playgroud)

结果应该是这样的:

res = c(2.1, 5.3, 6.7)
Run Code Online (Sandbox Code Playgroud)

r vector

5
推荐指数
2
解决办法
2万
查看次数

R 中函数的优化(L-BFGS-B 需要“fn”的有限值)

我想优化(最大)以下功能f1。我使用下限和上限编写了以下代码,因为我们知道所有参数都等于或大于零,而且我们的x4值始终应该小于或等于x6。如何在 R 中解决这个问题?我想获得函数 的有限最大值f1

          x1 = 0.1
          x2 = 0.1
          x3 = 2
          x4 = 10
          x5 = 2
          x6 = 30
          x7 = 1
          par = list(x1=x1, x2=x2, x3=x3, x4=x4,x5=x5, x6=x6, x7=x7)
          par1 = c(1, 1, 2, 1.5, 1, 1.5, 1)

          f1 = function(x, par){
              sum(log(exp(-(par$x7)*(par$x1*x + par$x2*x^2/2 + 
                par$x3 * (par$x4-x)^3/3+par$x5 *(x-par$x6)^3/3))))
          }

         x = seq(0, 500, length=100)
         z = c(par$x1, par$x2, par$x3, par$x4, par$x5, par$x6, par$x7)

        f2 = function(z){ …
Run Code Online (Sandbox Code Playgroud)

r

5
推荐指数
1
解决办法
3万
查看次数

tol论证在QR分解中的作用

我在R.新用户能否请你告诉我,或引进一些refrences其描述tol在计算R A QR分解的说法?

例如,这两行的区别是什么:

qr(A, tol=1e-07) #Doesn't work

qr(A, tol=1e-20) #Works
Run Code Online (Sandbox Code Playgroud)

为什么我得到我想要的resullt这么小的值tol,但没有更大的值?

r

3
推荐指数
1
解决办法
478
查看次数

从R中的矩阵中删除无限值

m在R中有一个矩阵,我想删除-Inf值,然后计算colMeans所有列.我怎么能在R中这样做?

m <- matrix(c(1, 3, 4, -Inf, 6, 7, 4, -Inf, 6, 0, 1, 3) , nrow = 3)
m
       [,1] [,2] [,3] [,4]
[1,]     1  -Inf    4    0
[2,]     3   6    -Inf   1
[3,]     4   7      6    3
Run Code Online (Sandbox Code Playgroud)

r

3
推荐指数
1
解决办法
2万
查看次数

独特载体的指数

我在R中有2个向量.我可以生成由它们的唯一元素组成的向量,但我需要知道向量的每个元素的索引a,例如:

 x <- c(0, 0, 2, 4, 8)
 y <- c(1, 4, 6, 6, Inf)
 a <- unique(sort(c(x, y)))

 > a
 [1]   0   1   2   4   6   8 Inf
Run Code Online (Sandbox Code Playgroud)

我需要显示的索引0(中a)是x1x2,该指数的1就是y1,对于2x3,对4他们x4y2等.

我如何在R中执行此操作?

indexing r vector

2
推荐指数
1
解决办法
116
查看次数

标签 统计

r ×10

vector ×2

indexing ×1