R Markdown
knitr::knit("")
转换为md文件
代码语言:text复制is.numeric("A")
代码语言:txt复制## [1] FALSE
代码语言:text复制##是否为数值型数据,返回值为TRUE或FALSE
as.numeric("4")
代码语言:txt复制## [1] 4
第一讲:认识R
" > "在R语言中是命令提示符
()前面的单词是函数
getwd()
获取绝对路径
路径补充
文件在桌面上,不在工作目录下,怎样读取
绝对路径,换了电脑就读不成功
x1 = read.csv("C:/Users/win10/Desktop/x.csv")
相对路径,文件的相对位置正确,则可以读成功
x1 = read.csv("../x.csv")
把x.csv放进了工作目录下的test文件夹里
x1 = read.csv("test/x.csv")
把整个biotrainee换个位置或者发给别人,仍然可以读取成功
字符型数据:"a",'b'
逻辑型数据:TRUE,FALSE,NA
数值型:1.3,2
class()
###判断数据类型
第二讲:数据类型
1. 逻辑型数据
与 &, 或 |,非 !,等于 ==,不等于 !=
2. is族函数
代码语言:text复制is.numeric("A")
代码语言:txt复制## [1] FALSE
代码语言:text复制##是否为数值型数据,返回值为TRUE或FALSE
3. as族函数实现数据类型之间的转换
代码语言:text复制as.numeric("4")
代码语言:txt复制## [1] 4
代码语言:text复制4
代码语言:txt复制## [1] 4
代码语言:text复制##将其他数据转换成数值型数据
4. 数据结构
向量(一串数据,数据框中单独拿出一列是向量,视为一个整体,一个向量只能有一种数据类型,可以有重复值)
数据框(约等于表格,一列只能有一种数据类型)
矩阵
列表
4.1 向量的生成
代码语言:text复制c(2,3,15,5,7)
代码语言:txt复制## [1] 2 3 15 5 7
代码语言:text复制c(1:9)
代码语言:txt复制## [1] 1 2 3 4 5 6 7 8 9
代码语言:text复制rep("x",times=3)
代码语言:txt复制## [1] "x" "x" "x"
代码语言:text复制##有重复的用rep(),有规律的序列用seq(),随机数用rnorm()
seq(from=3,to=21,by=3)
代码语言:txt复制## [1] 3 6 9 12 15 18 21
代码语言:text复制paste0(rep("x",times=3),1:3)
代码语言:txt复制## [1] "x1" "x2" "x3"
代码语言:text复制###paste0函数是把数据连在一起。连接函数
一个向量中有不同数据类型时有优先级
代码语言:text复制c(1,"a")
代码语言:txt复制## [1] "1" "a"
代码语言:text复制c(TRUE,1)
代码语言:txt复制## [1] 1 1
代码语言:text复制#C(FALSE,"a",TRUE)
变量名的取名规则:x_1,x.1,b1,A,a可用,x-1,2a,x 2,seq,c,巴拉巴拉不可用。
4.2 对单个向量进行操作
代码语言:text复制#简单计算
x<-c(1,3,5,6)
log(x)
代码语言:txt复制## [1] 0.000000 1.098612 1.609438 1.791759
代码语言:text复制sort(x,decreasing=T)
代码语言:txt复制## [1] 6 5 3 1
代码语言:text复制##默认从小到大,T会变成从大到小
常用函数:
代码语言:text复制x<-c(1,3,5,6)
var(x)#方差
代码语言:txt复制## [1] 4.916667
代码语言:text复制sd(x)#标准差
代码语言:txt复制## [1] 2.217356
代码语言:text复制length(x)#x长度
代码语言:txt复制## [1] 4
代码语言:text复制unique(x)#去重复
代码语言:txt复制## [1] 1 3 5 6
代码语言:text复制duplicated(x)#判断是否重复
代码语言:txt复制## [1] FALSE FALSE FALSE FALSE
代码语言:text复制table(x)#重复值统计
代码语言:txt复制## x
## 1 3 5 6
## 1 1 1 1
代码语言:text复制sort(x,decreasing=T)#排序##默认从小到大,T会变成从大到小
代码语言:txt复制## [1] 6 5 3 1
4.3 对两个向量进行操作
在R语言中,paste和paste0都是用于连接(concatenate)字符串的函数。它们的区别如下:
paste()函数:将多个输入对象连接成一个字符串,并在每两个相邻的对象之间添加分隔符,默认为一个空格。例如,paste("a", "b", "c")返回值为 "a b c"。
paste0()函数:与paste()函数类似,但是不会在对象之间添加分隔符。例如,paste0("a", "b", "c")返回值为 "abc"。
因此,如果你需要在字符串之间添加分隔符,则使用paste()函数;如果你不需要添加分隔符,则使用paste0()函数可以使代码更简洁易读。
这里还有一些其他的区别:
paste函数可以接受多个参数,并将它们连接起来,而paste0只接受两个或多个参数。
paste函数的默认分隔符是空格,但是你可以使用sep参数来指定自己想要的分隔符。而paste0没有分隔符参数,始终不添加分隔符。
总之,paste()和paste0()函数的主要区别在于是否添加分隔符。
4.4 利用循环补齐简化代码
(1)等位运算
(2)向量长度不相等
以长的为主
代码语言:text复制paste0("student",seq(2,5,2))
代码语言:txt复制## [1] "student2" "student4"
代码语言:text复制paste0(rep("student",times=7),seq(from=2,to=15,by=2))
代码语言:txt复制## [1] "student2" "student4" "student6" "student8" "student10" "student12" "student14"
4.5 对向量取子集
按照逻辑值:中括号里是与x等长且一一对应的逻辑值向量,
按照位置:中括号里是由x的下标组成的向量。