# R基础练习题

• 内积和外积：
两个向量的内积，即数量积或点积；若x,y是相同长度的向量x%*%y表示内积；R函数crossprod(x,y)也表示作内积,相当于t(x)%*%y,函数tcrossprod(x,y)，相当于x%*%t(y),此函数x,y也可以为矩阵。

两个向量的外积，即向量级或叉积，x%o%y表示外积；
例：

x <- c(1:4)
y <- c(3:6)
x%*%y
[,1]
[1,]   50
crossprod(x,y)
[,1]
[1,]   50
x%o%y
[,1] [,2] [,3] [,4]
[1,]    3    4    5    6
[2,]    6    8   10   12
[3,]    9   12   15   18
[4,]   12   16   20   24
tcrossprod(x,y)
[,1] [,2] [,3] [,4]
[1,]    3    4    5    6
[2,]    6    8   10   12
[3,]    9   12   15   18
[4,]   12   16   20   24

outer()的一般调用格式为
outer(x，y，fun=”*”),其中x,y为矩阵或向量，fun默认为乘法运算。函数outer()在绘制三维曲面时非常有用，它可生成一个x和y的网格。

  outer(x,y)
[,1] [,2] [,3] [,4]
[1,]    3    4    5    6
[2,]    6    8   10   12
[3,]    9   12   15   18
[4,]   12   16   20   24


outer()函数在三维视图的应用：

x1 <- seq(-5,5,0.25)
x2 <- seq(-2,2,0.1)
f <- function(x,y) x^2+50*cos(y)
z <- outer(x1,x2,f)
persp(x1,x2,z)


• 矩阵运算
A <- matrix(c(35,4,12,2,14,11,9,5,11,3,38,12,1,0,4,2),4)
det(A)#行列式
solve(A) #矩阵A的逆
crossprod(A,A) #t(A)%*%A
tcrossprod(A,A) #A%*%t(A)
solve(A)%*%A #A^(-1)%*%A
solve(A)%*%A-A%*%solve(A)

> det(A)
[1] 9020
> solve(A)
[,1]        [,2]         [,3]         [,4]
[1,]  0.034811530 -0.03680710 -0.004545455 -0.008314856
[2,] -0.007095344  0.09667406 -0.018181818  0.039911308
[3,] -0.020399113  0.02793792  0.072727273 -0.135254989
[4,]  0.105321508 -0.37250554 -0.386363636  1.220066519

crossprod(A,A)
[,1] [,2] [,3] [,4]
[1,] 1389  652  877   87
[2,]  652  423  589   60
[3,]  877  589 1718  187
[4,]   87   60  187   21
> tcrossprod(A,A)
[,1] [,2] [,3] [,4]
[1,] 1543  327  968  274
[2,]  327  146  261   99
[3,]  968  261 1685  533
[4,]  274   99  533  177
A%*%t(A)
[,1] [,2] [,3] [,4]
[1,] 1543  327  968  274
[2,]  327  146  261   99
[3,]  968  261 1685  533
[4,]  274   99  533  177
solve(A)%*%A
[,1]         [,2]          [,3] [,4]
[1,]  1.000000e+00 2.602085e-17  2.081668e-17    0
[2,] -4.163336e-17 1.000000e+00 -2.775558e-17    0
[3,]  0.000000e+00 0.000000e+00  1.000000e+00    0
[4,]  0.000000e+00 4.440892e-16  0.000000e+00    1


• 本文已收录于以下专栏：

## 【BZOJ4534】基础排序算法练习题

#以后看见这种题目名字2B的我直接绕道走 #%%%策爷 #讲道理这种论文题我都没脸写题解 主要工作分为两部分，一部分是在(n^2+m)log(n)内预处理完所有操作，用一个序列代表所有可以被成功...
• qq_34637390
• 2016年05月04日 22:10
• 1145

## 黑马程序员------50道JAVA基础编程练习题

------- android培训、java培训、期待与您交流！ ---------- 50道JAVA基础编程练习题 【程序1】 题目：古典问题：有一对兔子，从出生后第3个月起每个月都生一对...
• a768818702
• 2015年11月06日 14:18
• 7331

## mysql基础---基础最全面巩固练习（六）

--- 练习 -- CREATE TABLE student2( id INT, NAME VARCHAR(20), chinese FLOAT, english FLOAT, math ...
• yuexianchang
• 2016年12月06日 18:48
• 604

## java基础经典练习题

【程序1】    题目：古典问题：有一对兔子，从出生后第3个月起每个月都生一对兔子，小兔子长到第三个月后每个月又生一对兔子，假如兔子都不死，问每个月的兔子总数为多少？    //这是一个菲波拉契数列问...
• lxl403853563
• 2016年03月21日 15:18
• 1682

## Java基础练习

• Lh_0618
• 2016年03月12日 22:51
• 1023

## Web 基础学习之 JS ，循环练习

1.判断闰年          var i; for(i=1980;i { if( i % 4 == 0 && i % 100 != 0 || i % 400 == 0) document.writ...
• b1244154318
• 2016年07月08日 21:30
• 2542

## C++之基础练习题

C与C++的差异 【题目1】 C和C++中struct有什么区别？ 【参考答案】   Protection行为 能否定义函数 C 无 不能，但可以有函数指针 C++ privat...
• guo429554708
• 2013年10月25日 14:34
• 1284

## JAVA基础编程练习题--50道

• anlidengshiwei
• 2015年07月06日 15:18
• 1950

## MYSQL基础上机练习题（三） 数据查询

• CheyenneLam
• 2017年01月07日 17:40
• 1641

## 数据挖掘与R语言练习1

• lili_wuwu
• 2016年07月15日 00:25
• 699

举报原因： 您举报文章：R基础练习题 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)