分享

R语言学习

 复杂网络621 2016-01-22
5种基本的数据类型:
Numeric:数值类型,像10.5或者13.232
Integer:整数型数字,像10或者13
Character/String:字符型或者称作字符串类型的,像“car”或者"I love data!"
Logical/Boolean:逻辑值,或者称布尔值,像T,F,TRUE,FALSE
Factors:R语言中的一种特殊数据类型,用来存放分类变量,像汽车的品牌,Toyota,Honda,Lexus

在R语言中逻辑类型的数值可以转换为数值类型的来表示,像True,等价于1,False等价于0
例如:TRUE+TRUE+FALSE+TRUE得到的结果是3

逻辑操作符,返回值是TRUE和FALSE
  1. == 比较两个值是否相等
  2. !=比较两个值是否不相等
  3. >检查是否大于某个值
  4. <检查石佛小于某个值
你也可以使用!对逻辑取反
试一下,可以把数据向量转换成逻辑向量:
numer_vector=c(0,0,1,5,299)
as.logical(numer_vector)
得到的结果:FALSE FALSE  TRUE  TRUE  TRUE


变量赋值:
5==5
10!=1
7>29

我们可以通过给变量赋值,在R中来存储数据,通常在R中使用“=”或者“<-”来给变量赋值
x=5
y=25
my_variable="I like apples"
x
my_variable

你也可以在R中存储表达式:
x_plus_y=x+y

x_plus_y得到的结果是:30
my_variable的数据类型是:String

要想得到任何变量的值,你只需要在R控制台中输入变量名,然后回车即可。

R中的公共函数

Crunchbase是一个数据库。我们将使用这个数据库来展示R在数据分析中的基本功能。

让我们把这个数据集读入R,使用read.csv()函数。
首先,我们创建一个变量,startup_data;
然后我们给这个变量赋值,把read.csv()函数读入的数据赋值给它;
read.csv()函数的第一个参数是文件的名字,必须是一个string类型的数据。
第二个参数,我们使用header,我们设置它为true,因为我们想让CSV文件中的第一行成为列的名字;
第三个参数我们使用strignsAsFactors,我们设置它为false,因为我们想保持我们的数据是string类型的。

startup_data = read.csv('crunchbase_monthly_export.csv', header = T, stringsAsFactors = F)
R中的函数,通常允许多个内部参数,他们中的许多都有默认值,而且并不需要编辑,除非你有特殊需求。可以使用help()函数来查看每个函数的用法。

这里有几个公共的函数,你可以使用,熟悉一下数据集合。

head(startup_data):选择数据集合的前6行。
tail(startup_data):选择数据集合的最后6行。
nrow(startup_data):返回数据集里面的行数。
ncol(startup_data):返回数据集合里面的列数。
colnames(startup_data):返回数据集合里面列的名字。
help():查看R包中已经存在的函数信息。

使用R中的help函数

在R中,存在上百个可供使用的函数,为了可以更好的理解怎样使用它们,这可以省去你几个小时的写代码时间。

让我们看看sum()函数怎么使用。
敲入命令:help(sum)
通过读help的输出,我们可以看到,sum共有两个参数:
  1. 第一个参数是数值类型的,复杂的,或者逻辑向量,你要求和的。
  2. 第二个参数是na.rm,我们可以传递true或者false,默认值是false
如果我们设置na.rm的值为true,这表示我们在对向量求和的时候,忽略掉NA这样的值。
下面的代码返回值为NA:

vector_one=c(10,20,30,NA,40)
sum(vector_one)
这样,函数的结果返回值为NA
如果使用下面的代码,则返回值为正确的结果:
sum(vector_one,na.rm=T)

小技巧:我们不用记住函数怎么使用,最重要的是,我们要记住怎么使用help()函数!

R中的向量

向量是最基础的数据结构在R语言中。在R语言中,我们可以使用c()来创建一个向量。下面我们创建一个向量,并且给这个变量起名字为my_vector:

my_vector=c(2,14,10,15,3)
my_vector

甚至一个向量的长度是1.你可以使用下面非常智能的操作:
my_vector*2#这里我们给向量中的每个元素都乘以了2
my_vector+my_vector#这里向量里面的每个元素都自己加上了自己

R语言中的Data Frames

data frame是我们在R中涉及到的第三方数据结构。我们前面加载的第三方数据及Crunchbase, 存入了变量startup_data, 其实就是一个data frame。你可以查看一些应用在R中。

is.data.frame(startup_data)
is.matrix(startup_data)

你可以使用$来选择data frame中的指定列,$符号后面只需要跟列的名字即可。

你也可以使用[row,column]这种语法来对data frame类型的数据进行索引。这里我们取出所有行,第一列和第三列的数据:

startup_data[,c(1,3)]

函数c()创建了一个向量,用来取的第一列和第三列的数据。
使用head()来更好的从你的返回结果中得到图片。
head(startup_data[,c(1,3)])
这里得到的是返回结果中前六行的数据。

你也可以指定列名字来获取数据:

mini_frame=startup_data[1:10,c("name","market","funding_total_usd")]

这样得到的mini_frame会有10行3列数据。

data frame中的逻辑索引
现在让我们来检索一个数据,并且把它保存到一个变量yong_startups中,这个数据要求是从2012年之后建立的。

yong_startups=startup_data$founded_year>2012

上面的这行代码发生了什么:

1、我们创建了一个变量young_startups并且把等号右边的代码得到的结果赋值给它
2、startup_data$founded_year>2012创建了一个逻辑向量。它会遍历founded_year这一列中的所有数值,然后,如果它比2012这个数大,就返回true,否则就返回false。

让我们来看young_startups[1:10]这个变量的前10行,并且把它和startup_data$founded_year[1:10]的前十行进行比较。

1、young_startups[1:10]
2、startup_data$founded_year[1:10]

为了找到startups中有多少个是在2012年之后创建的,我么可以对向量young_startups进行求和。 由于有一些丢失值,我们设置na.rm=T。

sum(young_startups,na.rm=T)
我们将会得到一个结果4904

你也可以使用逻辑比较,使用strings而不是integers.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多