R基础

问: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" 



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值