本文主要是介绍R学习笔记 Note1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
主流统计软件
- SAS–专业昂贵
- SPSS–大众化为主
- R–免费开源,统计功能强大
- Matlab–数学建模
- Python–程序员
Basic syntax
清屏: option+command+L
赋值:
> x <- rnorm(5) ###R中赋值不常用=号
也可以反转赋值符号:
> rnorm(5) -> x ###与上面等价
可以使用函数c()以向量的形式输入月龄和体重数据,此函数可将其参数组合成一个向量或列表。然后用mean()、sd()和cor()函数分别获得体重的均值 和标准差,以及月龄和体重的相关度。最后使用plot()函数,从而用图形展示月龄和体重的关系,这样就可以用可视化的方式检查其中可能存在的趋势。函数q()将结束会话并允许你退出R。
> age <- c(1,3,5,2,11,9,3,9,12,3)
> weight <- c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1) > mean(weight)
[1] 7.06
> sd(weight)
[1] 2.077498
> cor(age,weight)
[1] 0.9075655
> plot(age,weight)
> q()
- Hint: demo()可以显示出各种示例
R语言编程中的常见错误
有一些错误是R的初学者和经验丰富的R程序员都可能常犯的,如果程序出错了,请检查以下几方面:
- 使用了错误的大小写。help()、Help()和HELP()是三个不同的函数(只有第一个是 正确的)。
- 忘记使用必要的引号。install.packages(“gclus”)能够正常执行,然而 Install.packages(gclus)将会报错。
- 在函数调用时忘记使用括号。例如,要使用help()而非help。即使函数无需参数,仍 需加上()。
- 在Windows上,路径名中使用了\。R将反斜杠视为一个转义字符。 setwd(“c:\mydata”)会报错。正确的写法是setwd(“c:/mydata”)或 setwd(“c:\mydata”)。
- 使用了一个尚未载入包中的函数。函数order.clusters()包含在包gclus中。如果还 没有载入这个包就使用它,将会报错。
赋值
1.vector
a <- c(1, 2, 5, 3, 6, -2, 4)
b <- c("one", "two", "three")
c <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE)
这里,a是数值型向量,b是字符型向量,而c是逻辑型向量
2.Matrix
矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可通 过函数matrix()创建矩阵。一般使用格式为:
myymatrix <- matrix(vector, nrow=number_of_rows, ncol=number_of_columns,byrow=logical_value, dimnames=list(
char_vector_rownames, char_vector_colnames))
其中vector包含了矩阵的元素,nrow和ncol用以指定行和列的维数,dimnames包含了可选 的、以字符型向量表示的行名和列名。选项byrow则表明矩阵应当按行填充(byrow=TRUE) 还是按列填充(byrow=FALSE),默认情况下按列填充。代码清单2-1中的代码演示了matrix 函数的用法。
>cells <- c(1,26,24,68)
> rnames <- c("R1","R2")
> cnames <- c("C1","C2")> M1 <- matrix(cells,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rnames,cnames))
> M1C1 C2
R1 1 26
R2 24 68
- 必须注意逻辑判断语句“TRUE”必须大写
M2 <- matrix(cells,2,2,TRUE,list(rnames,cnames))
> M2C1 C2
R1 1 26
R2 24 68
- 熟练以后可以简写
数组
数组(array)与矩阵类似,但是维度可以大于2。数组可通过array函数创建,形式如下:
myarray <- array(vector, dimensions, dimnames)
下表给出了一个创建三维(2x3x4)数值型数组的示例:
> dim1 <- c("A1","A2") ###命名步骤
> dim2 <- c("B1","B2","B3")
> dim3 <- c("C1","C2","C3","C4")
z <- array(1:24,c(2,3,4),dimnames=list(dim1, dim2, dim3)) ###数组赋值
> z
, , C1B1 B2 B3
A1 1 3 5
A2 2 4 6, , C2B1 B2 B3
A1 7 9 11
A2 8 10 12, , C3B1 B2 B3
A1 13 15 17
A2 14 16 18, , C4B1 B2 B3
A1 19 21 23
A2 20 22 24
从数组中选取元素的方式与矩阵相同。上例中,元素 z[1,2,3]为15。
数据框
数据框可通过函数data.frame()创建:
mydata <- data.frame(col1, col2, col3,...)
其中的列向量col1、col2、col3等可为任何类型(如字符型、数值型或逻辑型)。
> patientID <- c(1,2,3,4)
> age <- c(25,34,28,52)
> diabetes <- c("Type1","Type2","Type1","Type1")
> status <- c("Poor","Improved","Excellent","Poor")
> patientdata <- data.frame(patientID, age, diabetes, status)
> patientdatapatientID age diabetes status
1 1 25 Type1 Poor
2 2 34 Type2 Improved
3 3 28 Type1 Excellent
4 4 52 Type1 Poor
选取数据框元素的方式
attach() & with()
函数
函数attach()可将数据框添加到R的搜索路径中。R在遇到一个变量名以后,将检查搜索路 径中的数据框。
summary(mtcars$mpg)
plot(mtcars$mpg, mtcars$disp)
plot(mtcars$mpg, mtcars$wt)
可以用attach写成:
attach(mtcars)summary(mpg)plot(mpg, disp)plot(mpg, wt)
detach(mtcars)
*函数attach()和detach()最好在你分析一个单独的 数据框,并且不太可能有多个同名对象时使用。否则会出现问题。
另一种方式是使用函数with():
with(mtcars, {print(summary(mpg))plot(mpg, disp)plot(mpg, wt)
})
函数with()的局限性在于,赋值仅在此函数的括号内生效:
> with(mtcars, {stats <- summary(mpg) stats})Min. 1st Qu. Median Mean 3rd Qu. Max.
10.40 15.43 19.20 20.09 22.80 33.90
> stats
Error: object 'stats' not found
如果你需要创建在with()结构以外存在的对象,使用特殊赋值符<<-替代标准赋值符(<-)
即可,它可将对象保存到with()之外的全局环境中。
因子
函数**factor()**以一个整数向量的形式存储类别值:
举例来说,假设有向量:
diabetes <- c("Type1", "Type2", "Type1", "Type1")
语句diabetes <- factor(diabetes)将此向量存储为(1, 2, 1, 1),并在内部将其关联为 1=Type1和2=Type2(具体赋值根据字母顺序而定)。
针对向量diabetes进行的任何分析都会将其作为名义型变量对待.
要表示有序型变量,需要为函数factor()指定参数ordered=TRUE。给定向量:
status <- c("Poor", "Improved", "Excellent", "Poor")
语句status <- factor(status, ordered=TRUE)会将向量编码为(3, 2, 1, 3),并在内部将这些值关联为1=Excellent、2=Improved以及3=Poor。
另外,针对此向量进行的任何分析都会将 其作为有序型变量对待.
对于字符型向量,因子的水平默认依字母顺序创建。这对于因子status是有意义的,因为 “Excellent”“Improved”“Poor”的排序方式恰好与逻辑顺序相一致。如果“Poor”被编码为 “Ailing”,会有问题,因为顺序将为“Ailing”“Excellent”“Improved”。
可以通过指定levels选项来覆盖默认排序:
status <- factor(status, order=TRUE,levels=c("Poor", "Improved", "Excellent"))
各水平的赋值将为1=Poor、2=Improved、3=Excellent
summary()显示连续型变量age的最小值、最大值、均值和各四分位数;并显示类别型变量的频数值。
这篇关于R学习笔记 Note1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!