R语言函数化编程笔记1
notes:有一个不错的网站叫做stack overflow,有问题可以从上面找或者搜索答案,会有大佬相助。
在github上面可以找到很多R的扩展包,如果自己额修改被接受,那么就会成为该包的贡献者。。
-
R的编辑器
一般会在Rstudio中编写一个脚本文件来执行多行代码,可以编写R脚本,Rmarkdown文档,网页等,或者C++源代码 -
常用快捷键
- ctrl+enter组合键运行选中命令
- ctrl+shift+S组合键执行当前文档,也就是依次执行当前文档中的所有表达式
- Tap或者ctrl+space组合键展示匹配当前输入变量和函数的自动补齐列表
- 单击行数边缘左侧设置一个断点,就是debug,下次执行这行的时候程序会停下来检查
我感觉,我R语言函数编程这里在数据处理这里老老是出bug,我感觉应该是对于每个函数的数据类型使用不当。
因为每个对象都有其不同的类型和性质
4. 数据类型
4.1 向量
4.1.1 数值向量
4.1.2 逻辑向量
4.1.3 字符向量
4.2 给向量命名
可以通过names()获取向量中函数的名字
names(x)
## "a" "b" "c"
或者通过对向量赋予不同字符向量来更改元素名称
names(x)<-c("x","y","z")
4.2.1 提取向量的元素
[] 能够创建一个向量子集
[[]] 能够提取向量中的元素
4.2.2 识别向量类型
class(变量名)。具体的函数用法可以进行查询
4.2.3 强制类型转化
as.numeric()
as.data.frame()
as.character()
......很多。
4.3 矩阵
创建矩阵的函数:matrix,具体用法可以查询
为行和列命名
rownames(矩阵名)
colnames(矩阵名)
4.3.1 提取矩阵的子集
[] 还是这个框,挺好用的
4.4 数组
记住array函数吧,比较简单
4.5 列表(list)用的比较多
因为不用类型的数据均可存放在一个列表中
可以使用$符号来提取列表中的元素
4.6 数据框
一般平时用到的面板数据可以看成一个数据框(不过这样子说不太专业奥)
persons<-data.frame(
Name=c("ken","ally","jj"),
Gender=c("Male","Female","Female"),
Age=c(24,25,23),
Major=c("finance","art","cs"))
persons
Name Gender Age Major
1 ken Male 24 finance
2 ally Female 25 art
3 jj Female 23 cs
4.6.1 提取数据框子集
同样可以用$符号,或者用[[]]来提取某一位置的
4.6.2 数据框中的实用函数
summary()展示一个汇总表,比较直观
rbind()按行合并,可以向数据框中添加一些行
rbind(persons,data.frame(Name="july",
Gender="Female",
Age=23,
Major="cs")
Name Gender Age Major
1 ken Male 24 finance
2 ally Female 25 art
3 jj Female 23 cs
4 july Female 23 csex
cbind()按列合并,可以向数据框添加一些列
expand.grid()可以生成一个包含所有列值组合的数据框(这个以后看看能不能有妙用)
> expand.grid(type=c("A","B"),class=c("M","L","XL")
+ )
type class
1 A M
2 B M
3 A L
4 B L
5 A XL
6 B XL