数组、数据框、list列表的创建及部分基础问题
数列
题-1
请构造如下数列:1,2,3,4,5,6,7,8
1:8
seq(from=1,to=8)
[1] 1 2 3 4 5 6 7 8 [1] 1 2 3 4 5 6 7 8
题-2
用适当R语句产生数列:1,4,7,10,13,16,19; (1)求以上数列的均值,中位数,方差; (2)删去第1和第3个数。
# 以3为公差生成等差数列
C1<-seq(1,19,by=3)
# seq(1,19,length.out=7)
print(C1)
# 求均值、中位数、方差
print("[ mean ]- - - -");mean(C1)
print("[median]- - - -");median(C1)
print("[ var ]- - - -");var(C1)
# 删去第1和第3个数
C1<-C1[c(-1,-3)]
print(C1)
[1] 1 4 7 10 13 16 19 [1] “[ mean ]- - - -” [1] 10 [1] “[median]- - - -” [1] 10 [1] “[ var ]- - - -” [1] 42 [1] 4 10 13 16 19
题-3
构造一个向量,该向量由5个1,3个2,4个3和2个4组成。
C2<-rep(c(1,2,3,4),times=c(5,3,4,2))
print(C2)
[1] 1 1 1 1 1 2 2 2 3 3 3 3 4 4
题-4
建立起始值=3,增量值=5.5,终止值=47的一维数组x
# x<-seq(from=3,to=47,by=5.5)
x<-seq(3,47,by=5.5)
print(x)
[1] 3.0 8.5 14.0 19.5 25.0 30.5 36.0 41.5 47.0
题-5
建立等差一维数组x:首项为0,末项为
π
\pi
π ,项数为15.
x<-seq(0,pi,length.out=15)
print(x)
[1] “numeric”
[1] 0.0000000 0.2243995 0.4487990 0.6731984 0.8975979 1.1219974 1.3463969 1.5707963 1.7951958 2.0195953 2.2439948 2.4683942 [13] 2.6927937 2.9171932 3.1415927
题-6
将100,200,200,200,400,800输入R中,保存到numeric变量中。
numeric<-c(100,200,200,200,400,800)
print(numeric)
[1] 100 200 200 200 400 800
题-7
创建一个2到50的向量,形式为2,4,6,8,…,48,50 并命名为vector1
vector1<-seq(2,50,by=2)
print(vector1)
[1] 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50
题-8
选取vector1中的第20个元素
a<-vector1[20]
print(a)
[1] 40
题-9
选取vector1中的第10,15,20个元素
a<-vector1[c(10,15,20)]
print(a)
[1] 20 30 40
题-10
选取vector1中第10到20个元素
a<-vector1[10:20]
print(a)
[1] 20 22 24 26 28 30 32 34 36 38 40
题-11
选取vector1中值大于30的元素
a<-vector1[vector1>30]
print(a)
[1] 32 34 36 38 40 42 44 46 48 50
题-12
创建向量1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
rep(c(1,2,3,4,5),times=3,each=1)
[1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
题-13
使用rep创建向量 0 0 0 1 1 1 2 2 2
rep(c(0,1,2),times=c(3,3,3))
rep(c(0,1,2),each=3)
[1] 0 0 0 1 1 1 2 2 2 [1] 0 0 0 1 1 1 2 2 2
二维数组
题-14
请用适当的方式构造如下两个二维数组:
A
=
[
1
2
3
4
5
6
7
8
9
]
,
B
=
[
1
4
7
2
5
8
3
6
9
]
\mathbf{A}=\left[\begin{array}{lll}1 & 2 & 3 \\4 & 5 & 6 \\7 & 8 & 9\end{array}\right], \quad \mathbf{B}=\left[\begin{array}{lll}1 & 4 & 7 \\2 & 5 & 8 \\3 & 6 & 9\end{array}\right]
A=???147?258?369????,B=???123?456?789????
A<-matrix(data=1:9,3,3,byrow=TRUE);print(A)
# 只要可以判断形状有很多兼容写法
# A<-matrix(data=1:9,3,byrow=TRUE);print(A)
# A<-matrix(data=1:9,nrow=3,byrow=TRUE);print(A)
# A<-matrix(data=1:9,ncol=3,byrow=TRUE);print(A)
B<-matrix(data=1:9,3,3,byrow=FALSE);print(B)
… [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 …[,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9
题-15
请用适当的方式构造如下二维数组:
A
=
[
1
1
1
1
1
1
1
1
1
]
\mathbf{A}=\left[\begin{array}{lll}1 & 1 & 1 \\1 & 1 & 1 \\1 & 1 & 1\end{array}\right]
A=???111?111?111????
A<-matrix(data=1,3,3);print(A)
… [,1] [,2] [,3] [1,] 1 1 1 [2,] 1 1 1 [3,] 1 1 1
题-16
请用适当的方式构造如下两个二维数组:
A
=
[
1
2
3
1
2
3
1
2
3
]
,
B
=
[
1
1
1
2
2
2
3
3
3
]
\mathbf{A}=\left[\begin{array}{lll}1 & 2 & 3 \\1 & 2 & 3 \\1 & 2 & 3\end{array}\right], \quad \mathbf{B}=\left[\begin{array}{lll}1 & 1 & 1 \\2 & 2 & 2 \\3 & 3 & 3\end{array}\right]
A=???111?222?333????,B=???123?123?123????
A<-matrix(data=1:3,3,3,byrow=TRUE);print(A)
B<-matrix(data=1:3,3,3,byrow=FALSE);print(B)
… [,1] [,2] [,3] [1,] 1 2 3 [2,] 1 2 3 [3,] 1 2 3 …[,1] [,2] [,3] [1,] 1 1 1 [2,] 2 2 2 [3,] 3 3 3
题-17
请用适当的方式构造如下二维数组:
A
=
[
1
3
5
7
9
11
13
15
17
]
\mathbf{A}=\left[\begin{array}{lll}1 & 3 & 5 \\7 & 9 & 11 \\13 & 15 & 17\end{array}\right]
A=???1713?3915?51117????
请提取A数组第一行和第二行构造数组B
请将数组B,第一行第一列元素更改为100
请删除数组A第一列
A<-matrix(data=seq(from=1,to=17,by=2),3,3,byrow=TRUE);print(A)
B<-A[c(1,2),];print(B)
B[1,1]<-100;print(B)
A<-A[,-1];print(A)
…[,1] [,2] [,3] [1,] 1 3 5 [2,] 7 9 11 [3,] 13 15 17 …[,1] [,2] [,3] [1,] 1 3 5 [2,] 7 9 11 …[,1] [,2] [,3] [1,] 100 3 5 [2,] 7 9 11 …[,1] [,2] [1,] 3 5 [2,] 9 11 [3,] 15 17
数据框
题-18
请创建如下数据框:
Name | Sex | Age |
---|
Josh | M | 22 | Slandarer | M | 100 | Ashley | F | 25 | Brittany | F | 18 |
info<-data.frame(Name=c('Josh','Slandarer','Ashley','Brittany'),Sex=c('M','M','F','F'),Age=c(22,100,25,18))
print(info)
Name Sex Age Josh M 22 Slandarer M 100 Ashley F 25 Brittany F 18
题-19
请创建如下数据框: 并单独输出姓名数据
姓名 | 性别 | 年龄 |
---|
Josh | M | 22 | Slandarer | M | 100 | Ashley | F | 25 | Brittany | F | 18 |
info<-data.frame("姓名"=c('Josh','Slandarer','Ashley','Brittany'),"性别"=c('M','M','F','F'),"年龄"=c(22,100,25,18))
print(info)
print(info$"姓名")
#print(info$姓名)
姓名 性别 年龄 Josh M 22 Slandarer M 100 Ashley F 25 Brittany F 18 . [1] “Josh” “Slandarer” “Ashley” “Brittany”
字典
题-20
请用两种方式创建如下字典: 姓名->Csdn 年龄->27 技术栈->php r python
并输出其技术栈
L<-list("姓名"='Csdn',"年龄"=27,"技术栈"=c('php','r','python'))
print(L$技术栈)
L<-list('Csdn',27,c('php','r','python'))
names(L)<-c("姓名","年龄","技术栈")
print(L$技术栈)
[1] “php” “r” “python” [1] “php” “r” “python”
相关问题
关于中文编程 我们可以发现R语言能够略微支持中文编程,因此我们可以写一些很有意思的代码:
# 定义函数
"输出"<-function(x){print(x)}
"求均值"<-function(x){mean(x)}
"建立集合"<-function(...){c(...)}
# 中文编程
"一群人的年龄"=建立集合(15,26,18,21,30)
输出(一群人的年龄)
"平均年龄"<-求均值(一群人的年龄)
输出(平均年龄)
[1] 15 26 18 21 30 [1] 22
关于包无法下载
install Packages时找不到fBasics等包怎么办?
可通过 Tools->Global options->Packages->Primary CRAN repository
将镜像库换为国内源,例如清华源:
China (Beijing 1) [https] - TUNA Team, Tsinghua University
点击右下角Apply应用
|