-
使用错误的大小写
-
忘记使用必要的引号
-
在函数调用时忘记加括号
-
路径名使用反斜杠(R将其视为转义符):
正确格式:C:\mydata or c:/mydata
-
使用了一个尚未载入包的函数
偶尔我们可能想要以一种重复的、标准化的、无人值守的方式执行某个R程序。例如:可能需要每个月生成一次相同的报告。这时就可以在R中编写程序,在批处理模式下执行它。
“C:program FilesRR-4.0.0binR.exe” CMD BATCH
→–vanilla --slave “c:my projectsmyscript.R”
将路径调整为R.exe所在的相应位置和脚本文件所在的位置。
将输出用为输入:结果的重用R突出特点:分析的输出结果可轻松保存,并作为进一步分析的输入使用。
help(lm)
示例实践(1) 打开帮助文档首页,并查阅其中的“Introduction to R”。
(2) 安装vcd包(一个用于可视化类别数据的包,你将在第11章中使用)。
(3) 列出此包中可用的函数和数据集。
(4) 载入这个包并阅读数据集Arthritis的描述。
(5) 显示数据集Arthritis的内容(直接输入一个对象的名称将列出它的内容)。
(6) 运行数据集Arthritis自带的示例。如果不理解输出结果,也不要担心。它基本上显示 了接受治疗的关节炎患者较接受安慰剂的患者在病情上有了更多改善。
(7) 退出。
help.start()
install.packages("vcd")
help(package="vcd")
library("vcd")
help(Arthritis)
Arthritis
example(Arthritis)
q()
数据集
-
R中对象是指可以赋给变量的任何事物,包括常量、数据结构、函数,甚至图形
-
R可处理的数据类型包括数值型、字符型、逻辑型、复数型和原生型(字节)
-
R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表。
-
标量:只含有一个元素的向量,例如f <- 3,用于保存常量
-
向量:用于存储数值型、字符型或逻辑型数据的一维数组
a <- c(1,2,5) b <- c("one","two") c <- c(TRUE,TRUE,FALSE) -
矩阵:二维数组。且每个元素都有相同的模式.
cells <- c(1,26,24,68) rnames <- c("R1","R2") cnames <- c("C1","C2") mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=TRUE, dimnames=list(rname,cname)) > mymatrix C1 C2 R1 1 26 R2 24 68 -
数组:与矩阵类似,但维度可以大于2
> 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 , , C1 B1 B2 B3 A1 1 3 5 A2 2 4 6 , , C2 B1 B2 B3 A1 7 9 11 A2 8 10 12 , , C3 B1 B2 B3 A1 13 15 17 A2 14 16 18 , , C4 B1 B2 B3 A1 19 21 23 A2 20 22 24 -
数据框
> 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) > patientdata patientID age diabetes status 1 1 25 Type1 Poor 2 2 34 Type2 Improved 3 3 28 Type1 Excellent 4 4 52 Type1 Poor > patientdata$age [1] 25 34 28 52- $
例子中的记号$被用来选取一个给定数据框中的某个特定变量。
- attach()、detach()和with()
在每个变量名前都键入一次patientdata$可能会让人生厌,所以不妨走一些捷径。可以联合使用函数**attach()和detach()或单独使用函数with()**来简化代码。
函数attach()可将数据框添加到R的搜索路径中。
函数detach()将数据框从搜索路径中移除。值得注意的是,detach()并不会对数据框本身做任何处理。这句是可以省略的,但其实它应当被例行地放入代码中,因为这是一个好的编程习惯。
函数attach()和detach()最好在你分析一个单独的数据框,并且不太可能有多个同名对象时使用。
函数with()语法格式:with(xxx,{print(summary(x))plot()})花括号{}之间的语句都针对数据框xxx执行,这样就无需担心名称冲突了。如果仅有一条语句(例如summary(x)),那么花括号{}可以省略。
函数with()的局限性在于,赋值仅在此函数的括号内生效。
如果你需要创建在with()结构以外存在的对象,使用特殊赋值符<<-替代标准赋值符(<-) 即可,它可将对象保存到with()之外的全局环境中。
-
因子:类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)。
函数factor()以一个整数向量的形式存储类别值,整数的取值范围是[1…k](其中k是名义 型变量中唯一值的个数),同时一个由字符串(原始值)组成的内部向量将映射到这些
因子的使用:
> patientID <- c(1, 2, 3, 4) > age <- c(25, 34, 28, 52) > diabetes <- c("Type1", "Type2", "Type1", "Type1") > status <- c("Poor", "Improved", "Excellent", "Poor") > diabetes <- factor(diabetes) > status <- factor(status, order=TRUE) > patientdata <- data.frame(patientID, age, diabetes, status) > str(patientdata) ‘data.frame’: 4 obs. of 4 variables: $ patientID: num 1 2 3 4 $ age : num 25 34 28 52 $ diabetes : Factor w/ 2 levels "Type1","Type2": 1 2 1 1 $ status : Ord.factor w/ 3 levels "Excellent"<"Improved"<..: 3 2 1 3 > summary(patientdata) patientID age diabetes status Min. :1.00 Min. :25.00 Type1:3 Excellent:1 1st Qu.:1.75 1st Qu.:27.25 Type2:1 Improved :1 Median :2.50 Median :31.00 Poor:2 Mean :2.50 Mean :34.75 3rd Qu.:3.25 3rd Qu.:38.50 Max. :4.00 Max. :52.00 -



