R语言基础知识笔记

Python016

R语言基础知识笔记,第1张

1、向量是用于存储数值型,字符型或者逻辑型数据的一维数组。执行组合功能的函数为c(),可以用来创建向量。向量可根据位置进行索引,需要用[]。

2、矩阵是一个二维数组,每个元素都拥有相同的模式,可通过函数matrix()创建矩阵。

3、数组是一个可以在两个以上维度存储数据的数据对象。例如,如果创建尺寸(2,3,4)的数组,那么就是创建4个矩形矩阵每个2行3列。数组只能存储数据类型。

4、矩阵和数组一样都只能包含一种数据类型,当有多种模式的数据时,使用数据框就更为方便。数据框可以用函数data.frame () 创建。

5、$  被用来选取一个给定数据框中的某个特定变量。

6、attach()绑定数据集,detach()解除数据集。

7、with:attach,detach最好在单独的数据框内使用,在多个同名对象最好不要使用,函数with(),可以再具有多个同名对象的数据框内使用,但是必须加入花括号{},这样就无须担心名称冲突了,但是它也有局限性,赋值仅在此函数的括号内生效。

8、列表是一些对象的有序集合。

9,、数据导入 read.table(),其中header = T,代表第一行为变量名称,不作为数据,header = F相反。sep代表数据分隔符,txt为"\t",csv为","。

10、table函数,用 table() 函数统计因子各水平的出现次数(称为频数或频率)。

>sex = c("女","女","女","男","男")

>table(sex)

>sex

  男 女

  2 3

求众数

>aim = table(sex)[table(sex)==max(table(sex))]

>aim

  女

   3

> max(table(sex))

[1] 3

> table(sex)==max(table(sex))

  sex

  男    女

  FALSE TRUE

11、 无尺度网络: 是指在某一复杂的 系统 中,大部分节点只有少数几个连结,而某些节点却拥有与其他节点的大量连结。这些具有大量连结的节点称为“集散节点”,所拥有的连结可能高达数百、数千甚至数百万。这一特性说明该网络是无尺度的,因此,凡具有这一特性的网络都是无尺度网络。

12、options(stringsAsFactors = F)

#在调用as.data.frame的时,将stringsAsFactors设置为FALSE可以避免character类型自动转化为factor类型。

13、class():查看数据结构:vector、matrix、array、dataframe、list。

14、str():作用用英语来表示是:check classification of viriables,一般用于检查数据框当中有哪些数据。

15、mode() :查看数据元素类型。

16、typeof() :查看数据元素类型,基本等同于mode(),比mode()更为详细。

17、example():假设有一个函数foo,example("foo"),函数foo的使用示例。

18、apropos():列出名称中含有foo的所有可用函数。apropos("foo",mode="function")。

19、data():列出当前已加载包中所含的所有可用示例数据集。

20、ls():列出当前工作空间中的对象。

21、rm():移除(删除)一个或多个对象。

22、history(#):显示最近使用过的#个命令(默认值为25)。

23、options():显示或设置当前选项。有一个收藏文件有介绍options的功能。

24、boxplot():生成盒型图。

25、sum():计算和。sum(x,na.rm = TRUE)。

26、median():计算中位数。

27、cbind():以列结合变量。cbind(x,y,z)。

28、rbind():以行结合变量。

29、vector():以向量形式结合数据。vector(length = 10)。

30、rep():以矩阵形式结合数据。rep(c(1,,2,3),each = 10)

31、seq():生成一个有序的数列。seq(1,10)。

32、dim():矩阵或者cbind输出的维数。dim(Mydata)。

33、scan():从ascii文件中读取数据。scan(file = "test.txt")。

34、write.table():把一个变量写入到ascii文件。write.table(Z,file = "test.txt")。

35、order():确定数据的顺序。order(x)。

36、merge():合并两个数据框。merge(x,y,by = "ID")。

37、str():显示一个对象的内部结构。str(Mydata)。

38、factor():定义变量作为因子。factor(x)。

39、tapply():tapply(X = Veg$R,INDEX = Veg$Transect,FUN = mean).tapply函数根据第二个变量(Transect)的不同水平对第一变量(R)进行了求平均值运算。还可以求sd,var,length等操作。R语言初学者指南P75详细介绍了这个函数。

40、下一页介绍了sapply和lapply。

41、summary():计算基本信息。

42、table():计算列联表,统计因子各水平的出现次数(频数或频率)。table(x,y)。

43、plot():y对x的图形。pch形状,col颜色。

44、par():par(mfrow = c(2,2),mar = c(3,3,2,1))

mfrow生成一个具有4个面板的图形窗口。mar选项指定每个图形周围空白的大小,底部、左侧、顶部、右侧。

45、paste():将变量连接成字符串。paste("a","b",sep = "")。

46、log(): log = "x",log = "y",log = "xy",生成对数轴。

47、%in%:

a<-c(1,3,13,1443,43,43,4,34,3,4,3)

b<-c(1,13,11,1313,434,1)

a%in%b

# 返回内容# 

[1] TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

# 取反操作

!(a%in%b)

48、sort()函数是对向量进行从小到大的排序

rank()函数返回的是对向量中每个数值对应的秩

order()函数返回的值表示位置,依次对应的是向量的最小值、次小值、第三小值……最大值等(位置索引)

arrange()函数(需加载dplyr包)针对数据框,返回基于某列排序后的数据框,方便多重依据排序。

49、subset(): df <- data.frame( a = 1:10, b = 2:11, c = 3:12 )

df <- subset(df, select = c(a,c)) #选取列a和c

df <- subset(df, select = -c(a,c) ) #去除列a和c

云计算正逐步成为适用于超出笔记本或台式机处理能力的问题或数据的一种自然延伸。然而,对于完全没有基础的初学者来说,学习使用云计算平台会显得比实际更难。

我们用信息图的方式向大家介绍云计算的概念,它的重要性以及使用R语言和R studio的基本设置等几部分内容。由于本文只是一篇快速学习攻略,你可能会遗漏一些概念方面的详细解释。但是不用担心,你还可以参考另外一篇完整版攻略“如何在云端进行R语言编程?”

什么是云计算?

简单来说,云计算就是一种远端存储数据和应用程序,并可以通过互联网获取这些文件的模式。

云计算的三个组成部分:

1.基础设施服务

2.平台服务

3.软件服务

计算的前景如何?

基于其可以将数据上传到云端并可以在任何时间、任何地点以及通过任何设备随时获取数据的方便性,云计算的前景一片光明。

第二排柱状图显示,云计算的计算量正在逐年增长。

2016年预计软件服务(SaaS)收入一千零六十亿美金, 预计2018年企业注册使用云计算收入六百七十亿美金。

至2018年,预计在基础设施方面有30%的增长,80%企业将使用云计算。

云计算全球市场规模预计将从2013年的580亿美金,增长至2020年的1910亿美金。

使用云计算的好处?

1.节约成本;

2.使用便捷;

3.扩展性强;

4.易于监控。

如何在云端使用R语言编程?

1.登陆亚马逊云计算平台的控制界面

2.点击运行实例(Run Instance)

3.选择你即将远程访问的虚拟机的操作系统,这里我们选择了亚马逊Linux(Amazon Linux)

4.选择实例类型(需要选择内存大小),同时比较不同的价格

我的亲师弟最近也开始学习R语言了,然后师弟每天“师姐,师姐...",“我这个怎么弄...”,“我怎么又报错了...”,“师姐师姐...”...我快被他搞疯了,于是有了这篇文章。

新手在学习R语言的过程中一定会出现各种各种问题,问题多到令人抓耳挠腮。

但其实不要觉得害怕或有打退堂鼓的心里,R的使用,就是不断报错不断找问题的过程。但是出现问题,第一反应一定要是上网搜索,找答案,不要第一时间就问身边的人,错失了思考的过程。生信的学习,其实就是一个漫长的自学过程。

推荐 搜索引擎:必应,必应,必应 !不要再用某度啦拜托!当然如果你能想办法用Google,那当然再好不过了。

搜索能解决百分之九十以上的问题 ,就算解决不了,如果解决不了,可能是因为你的搜索能力还不够高。在这个搜索、尝试解决以及思考的过程,对新学者来说也是一大收获。本身搜索能力的提升就是一个巨大收获。

如果自己尝试了好久,最终实在解决不了,那。。。就再去请教有经验的前辈吧~

其实这种搜索并独立解决问题的思维,我还是在同济大学, 生信大牛刘小乐教授 课题组学到的。刘小乐教授课题组每年都有为期一个月的生信培训,本人有幸学习过一段时间。她们会给很多生信相关的题目给到学员,然后附上一些教学视频,培训的大部分时间,其实就是写作业,自己想方设法找到解决方案的过程。那些大牛师兄师姐们虽然一直在陪伴我们,但是并不会直接告诉我们答案,而是引导我们自己思考,自己去解决。当时真的很崩溃,因为真的啥也不会,怎么搞。一天下来有可能一个问题都答不上来。

但是现在回头想想,我真的获益良多。因为我慢慢学会了独立思考,现在遇到R相关的问题,配合上搜索功能,基本上已经完全能自己驾驭了。

这可能就是“ 授人以鱼不如授人以渔 ”的道理吧。

R语言很简单,只要你想学,就一定能学会。

以下附上同济大学刘小乐课题组在培训时针对初学者第一周的初级练习题。希望对大家有所帮助。

首先你需要先安装几个最常用的数据处理软件

You can use the mean() function to compute the mean of a vector like

so:

However, this does not work if the vector contains NAs:

Please use R documentation to find the mean after excluding NA's (hint: ?mean )

In this question, we will practice data manipulation using a dataset

collected by Francis Galton in 1886 on the heights of parents and their

children. This is a very famous dataset, and Galton used it to come up

with regression and correlation.

The data is available as GaltonFamilies in the HistData package.

Here, we load the data and show the first few rows. To find out more

information about the dataset, use ?GaltonFamilies .

a. Please report the height of the 10th child in the dataset.

b. What is the breakdown of male and female children in the dataset?

c. How many observations are in Galton's dataset? Please answer this

question without consulting the R help.

d. What is the mean height for the 1st child in each family?

e. Create a table showing the mean height for male and female children.

f. What was the average number of children each family had?

g. Convert the children's heights from inches to centimeters and store

it in a column called childHeight_cm in the GaltonFamilies dataset.

Show the first few rows of this dataset.

In the code above, we generate r ngroups groups of r N observations

each. In each group, we have X and Y, where X and Y are independent

normally distributed data and have 0 correlation.

a. Find the correlation between X and Y for each group, and display

the highest correlations.

Hint: since the data is quite large and your code might take a few

moments to run, you can test your code on a subset of the data first

(e.g. you can take the first 100 groups like so):

In general, this is good practice whenever you have a large dataset:

If you are writing new code and it takes a while to run on the whole

dataset, get it to work on a subset first. By running on a subset, you

can iterate faster.

However, please do run your final code on the whole dataset.

b. The highest correlation is around 0.8. Can you explain why we see

such a high correlation when X and Y are supposed to be independent and

thus uncorrelated?

Show a plot of the data for the group that had the highest correlation

you found in Problem 4.

We generate some sample data below. The data is numeric, and has 3

columns: X, Y, Z.

a. Compute the overall correlation between X and Y.

b. Make a plot showing the relationship between X and Y. Comment on

the correlation that you see.

c. Compute the correlations between X and Y for each level of Z.

d. Make a plot showing the relationship between X and Y, but this

time, color the points using the value of Z. Comment on the result,

especially any differences between this plot and the previous plot.