我有一个矩阵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) 我有一个数据框,如下例所示
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) 我有一个矩阵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) 我有一个向量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) 我有一个矩阵M
,我想创建3个列表,每个列表包含矩阵的行名称,M
为fisrt列表检查,我想要m[, 1]$a = 1
和m[ ,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) 我有两个向量x
和y
.我想找出x
vector的两个元素之间的哪些元素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) 我想优化(最大)以下功能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.新用户能否请你告诉我,或引进一些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
,但没有更大的值?
我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中有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
)是x1
和x2
,该指数的1
就是y1
,对于2
它x3
,对4
他们x4
和y2
等.
我如何在R中执行此操作?