问:RStudio中保存R文件时如何选择Encoding?
答:win下面存中文选GB2312,linux或者mac下UTF8,反正如果打开是乱码,就reopen with encoding
赋值符号用“”<-",而等号“=”99%都对,但极端时会出错;注意区分大小写。
一次性;重复利用,创建脚本;注释用"#"
1.对象的5种基本类型(classes of objects)
----字符(character):双引号,"a"
----数值(numeric):real numbers,3,3.14
----整数(integer):2L
----复数(complex):1+2i
----逻辑(logical):TRUE/FALSE
2.对象属性(attribute)
----名称(names)
----维度(dimensions):matrix,array
----类型(class)
----长度(length)
Warning message:NAs introduced by coercion 强制转换的后果是引入了缺失值。as.numeric()
3.矩阵和数组
矩阵是按列排列的,,向量+维度(等于2)。
matrix():先列后行;vector()+dim() ;rbind() ,cbind();attribute();-----x[1,2,drop=FALSE],返回的是一个矩阵,drop这个参数可以关掉了返回向量的选择
数组维度(>=2),,dim=c(2,3,4):4个2行3列,,了解即可。
> matrix(1:6,nrow = 3,ncol = 2) [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6
> array(1:24,dim = c(4,6)) [,1] [,2] [,3] [,4] [,5] [,6] [1,] 1 5 9 13 17 21 [2,] 2 6 10 14 18 22 [3,] 3 7 11 15 19 23 [4,] 4 8 12 16 20 24 > array(1:24,dim = c(2,3,4))
4.列表
可以包含(((不同类型)))的对象;
x<-matrix(1:6,nrow = 2,ncol = 3)
dimnames(x)<-list(c("a","b"),c("c","d","e"))
> list(a=1,b=2,c=3) $a [1] 1 $b [1] 2 $c [1] 3 > list(c(1,2,3),c(4,5,6,7)) [[1]] [1] 1 2 3 [[2]] [1] 4 5 6 7
5.因子
用来处理分类数据(有序VS无序----比大小);factor=整数向量+标签属性(可进行描述,如1表示男性)----因子优于整数向量;常用于lm(),glm()。
当前因子包含几个水平(是因子的一个属性),,基线水平,R进行统计分析中会用到。
对当前因子有一个整体性的了解,可用table()函数;去掉属性用unclass()。
> factor(c("female","female","male","male","female"),levels = c("male","female")) [1] female female male male female Levels: male female
6.缺失值(missing value)
NaN数字的缺失值,NA范围更广,有类型属性的;is.na(),,,is.nan()
7.数据框(data frame)
存储表格数据;视为各元素长度相同的列表(1每个元素代表一列数据,2每个元素的长度代表行数,3元素(((类型)))可不同)。
创建数据框,第一个参数代表第一列的内容,第二个参数代表第二列的内容,第三个参数代表第三列的内容,内容输入结束后,可使用其他的参数进行设置数据框的行名等。
> df2<-data.frame(id=c(1,2,3,4),score=c(88,79,89,100)) > data.matrix(df2) # 数据框转化为矩阵,因为类型相同 id score [1,] 1 88 [2,] 2 79 [3,] 3 89 [4,] 4 100
set.seed()
设定产生随机数的初始值,用于设定随机数种子,一个特定的种子可以产生一个特定的伪随机序列,主要目的是让你的模拟能够可重复出现,因为很多时候我们需要取随机数,但这段代码再跑一次的时候,结果就不一样了,如果需要重复出现同样的模拟结果的话,就可以用set.seed()。
也可以简单地理解为括号里的数只是一个编号而已,例如set.seed(100)不应将括号里的数字理解成“一百”,而是应该理解成“编号为100的随机数发生”,下次模拟可以采用200.
> rnorm(10) #随机生成10个随机数 [1] -1.2070657 0.2774292 1.0844412 -2.3456977 0.4291247 0.5060559 -0.5747400 -0.5466319 [9] -0.5644520 -0.8900378 > rnorm(10) #再次随机生成10个随机数 [1] -0.47719270 -0.99838644 -0.77625389 0.06445882 0.95949406 -0.11028549 -0.51100951 [8] -0.91119542 -0.83717168 2.41583518 > set.seed(5) #设定种子 > rnorm(10) # 在设定种子的前提下生成10个随机数 [1] -0.84085548 1.38435934 -1.25549186 0.07014277 1.71144087 -0.60290798 -0.47216639 [8] -0.63537131 -0.28577363 0.13810822 > set.seed(5) # 设定种子 > rnorm(10) [1] -0.84085548 1.38435934 -1.25549186 0.07014277 1.71144087 -0.60290798 -0.47216639 [8] -0.63537131 -0.28577363 0.13810822
cat()
#一个输出函数,cat(12,212,31223,file="1.txt") 可以把前面的数字什么的(以行)写入当前工作目录的1.txt文件中,可以用这个方法把脚本 输出到文件,加上append=TRUE参数,可以不覆盖原文件,在后面继续添加。
> cat("hellow world") hellow world > print("hellow world") [1] "hellow world" > cat(c("AB","C"),c("E","F"),"n",sep = "/") AB/C/E/F/n > print(c("AB","C"),c("E","F"),"n",sep = "/") Error in print.default(c("AB", "C"), c("E", "F"), "n", sep = "/") : invalid 'digits' argument In addition: Warning message: In print.default(c("AB", "C"), c("E", "F"), "n", sep = "/") : NAs introduced by coercion > print(c("AB","C")) [1] "AB" "C"