R其实对于数据分析来说只是工具而已,所以刚开始不需要学习多么深多么细,只需要能够满足当前需求就行,之后的在实践中慢慢学习。
毕竟想要把R学精并不是容易的事情。正确的做法就是边做边学,不会就google翻文档。
本片主要是R的基础语法及常用的命令操作
赋值
R赋值采用<-
或者->
或者=
,建议采用标准的第一个。
由于R中内置了同名函数c(),最好不要在编码时使用c作为对象名,否则可能产生一些不易察觉的问题
a <- 133
"hello" -> b # 注意无论哪种写法,大于或小于号都是指向变量名
d = 'This' # 不建议这么用,有可能会造成问题
a
b
d
133
'hello'
'This'
查看帮助
help(mean)
# 或者
?mean
包的安装和加载
# 获取包含R包的库位置
.libPaths()
# 查看已经安装的包
library()
# 安装包
install.packages("packagename")
# 加载包
library(packagesname)
# 查看已经加载的包
(.packages())
# 卸载加载的包(注意不是删除包)
detach("package:packagename")
# 删除包
remove.packages("packagename")
数据的读取与保存
读取
# 读取csv
data <- read.csv('.\\统计学\\example\\ch1\\table1_1.csv')
head(data,6) # 读取前 6行的数据
# 读取 Excel数据
library(xlsx) #需要安装 xlsx 包
data <- read.xlsx("file",n) # n 为要导入工作表的序号
# 读取 spss数据
library(foregin) # 已经默认安装
data <- read.spss("file",use.value.labels=TRUE,as.data.frame=TRUE)
# 读取 R格式数据
data <- load('.\\统计学\\example\\ch1\\example1_1.RData')
学生姓名 | 统计学 | 数学 | 营销学 | 管理学 | 会计学 |
---|---|---|---|---|---|
张青松 | 68 | 85 | 84 | 89 | 86 |
王宇翔 | 85 | 91 | 63 | 76 | 66 |
田思雨 | 74 | 74 | 61 | 80 | 69 |
徐丽娜 | 88 | 100 | 49 | 71 | 66 |
张志杰 | 63 | 82 | 89 | 78 | 80 |
赵颖颖 | 78 | 84 | 51 | 60 | 60 |
保存
# 保存 R格式数据
save(data,file = '.\\...\\name.Rdata')
# 保存 csv格式数据
write.csv(data,file = '.\\...\\name.csv')
# 保存 xlsx格式
library(xlsx)
write.xlsx(data, "data.xlsx",sheet.name="sheet1")
if条件语句
if语句
x <- 30L # R语言中,在正整数后加 L来表示整型数据(正整数)
if(is.integer(x)) {
print("X is an Integer")
}
[1] "X is an Integer"
if…else语句
y <- list('a', 'v', 'd')
if('a' %in% y){ # %in% 运算符 检查元素是否在向量中
print('a is in list')
}else{ # 注意这里的 else语句并不在if的花括号当中
print('a is not in list')
}
[1] "a is in list"
x <- c("what","is","truth")
if("Truth" %in% x) {
print("Truth is found the first time")
} else if ("truth" %in% x) {
print("truth is found the second time")
} else {
print("No truth found")
}
[1] "truth is found the second time"
switch语句
# 创建一个函数,输入的值和选择的函数类型来输出结果。
centre <- function(x, type) {
switch(type,
mean = mean(x),
median = median(x),
trimmed = mean(x, trim = .1))
}
centre(c(1,2,4,5),'mean')
3
循环语句
while循环
ant <- 2
while(ant<5){
print('hello')
ant = ant + 1
}
[1] "hello"
[1] "hello"
[1] "hello"
for循环
v <- LETTERS[1:4] # LETTERS为26个大写字母向量。
for(i in v){
print(i)
}
[1] "A"
[1] "B"
[1] "C"
[1] "D"
repeat循环
i <- 1
sum <- 0
repeat
{
sum = sum + i
if( i >= 100) #如果已循环加到了100,则使用break跳出repeat循环
break
i <- i + 1
}
print(sum)
[1] 5050
next语句
R语言存在next语句,当我们想跳过循环的当前迭代而不终止它时便可使用next。 遇到next时,R解析器跳过本次迭代,并开始循环的下一次迭代。
k <- LETTERS[1:6]
for ( i in k) {
if (i == "D") {
next
}
print(i)
}
[1] "A"
[1] "B"
[1] "C"
[1] "E"
[1] "F"
R常用的常量
# 26个大写字母
LETTERS
# 26个小写字母
letters
# 月份简写
month.abb
# 月份名称
month.name
# π 值
pi
'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M' 'N' 'O' 'P' 'Q' 'R' 'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z'
'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x' 'y' 'z'
'Jan' 'Feb' 'Mar' 'Apr' 'May' 'Jun' 'Jul' 'Aug' 'Sep' 'Oct' 'Nov' 'Dec'
'January' 'February' 'March' 'April' 'May' 'June' 'July' 'August' 'September' 'October' 'November' 'December'
3.14159265358979