R语言,两个向量相乘,如何根据各个元素对应的names相乘

Python020

R语言,两个向量相乘,如何根据各个元素对应的names相乘,第1张

你可以先按照名字给他们排序一下

a <- a[order(names(a))]

b <- b[order(names(b))]

这样他们俩个就是一样的顺序了

R语言中两个数组(或向量)的外积如何计算

所谓数组(或向量)a和b的外积,指的是a的每一个元素和b的每一个元素搭配在一起相乘得到的新元素.当然运算规则也可自定义.外积运算符为 %o%(注意:百分号中间的字母是小写的字母o).例如:

[plain] view plain copy

>a <- 1:2

>b <- 3:5

>d <- a %o% b

>d

[,1] [,2] [,3]

[1,]345

[2,]68 10

注意维数公式为:

[plain] view plain copy

dim(d) = c( dim(a) , dim(b) )

实际上R语言提供了一个更为一般化得外积函数outer(X,Y,Fun),比较简单,看个示例吧.

下面的例子是为了绘制 z = x**2 +50cos(y)的3维表面图:

[plain] view plain copy

>x <- seq(from = -5, to = 5, by = 0.25)

>y <- seq(from = -2, to = 2, by = 0.1)

>f <- function(x,y){x**2+50*cos(y)}

>z <- outer(x,y,f)

>persp(x,y,z)

绘制图像如下:

其它看帮助文档吧.

%*%表示通常意义下的两个矩阵的乘积。而矩阵乘积只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。

x+y加法

x-y减法

x*y乘法

x/y除法

x^y乘幂

x%%y模运算

x%/%y整数除法

x==y判断是否相等

x <= y判断是否小于等于

x >= y 判断是否大于等于

x &&y 标量逻辑“与”运算

x||y标量的逻辑“或”运算

x &y 向量的逻辑“与”运算(x、y以及运算结果都是向量)                                 

X|y的逻辑“或”运算(x、y以及运算结果都是向量)

!x逻辑非

扩展资料

R语言表面上没有标量的类型,因为标量可以看作是含有一个元素的向量,但我们看到表中,逻辑运算符对标量和向量有着不同的形式,这虽然看起来很奇怪,但这种区别很有必要。

>x <- c( TRUE, FALSE, TRUE )

>y <- c( TRUE, TRUE, FALSE )

>x &y

[1]TRUEFALSEFALSE

>x[1] &&y[1]

[1]TRUE

>x &&y

[1]TRUE

>if( x[1] &&y[1] )   print( "both TRUE" )

[1]"bothTRUE"

>if( x &y )   print( "both TRUE" )

[1]"bothTRUE"