R语言教程写给高级入门者的数据打理攻略Word文档下载推荐.docx

上传人:b****3 文档编号:15827035 上传时间:2022-11-16 格式:DOCX 页数:21 大小:34.55KB
下载 相关 举报
R语言教程写给高级入门者的数据打理攻略Word文档下载推荐.docx_第1页
第1页 / 共21页
R语言教程写给高级入门者的数据打理攻略Word文档下载推荐.docx_第2页
第2页 / 共21页
R语言教程写给高级入门者的数据打理攻略Word文档下载推荐.docx_第3页
第3页 / 共21页
R语言教程写给高级入门者的数据打理攻略Word文档下载推荐.docx_第4页
第4页 / 共21页
R语言教程写给高级入门者的数据打理攻略Word文档下载推荐.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

R语言教程写给高级入门者的数据打理攻略Word文档下载推荐.docx

《R语言教程写给高级入门者的数据打理攻略Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《R语言教程写给高级入门者的数据打理攻略Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。

R语言教程写给高级入门者的数据打理攻略Word文档下载推荐.docx

1.fy 

<

c(2010,2011,2012,2010,2011,2012,2010,2011,2012) 

2.company 

c("

Apple"

"

Google"

Microsoft"

 

3."

) 

4.revenue 

c(65225,108249,156508,29321,37905,50175,62484,69943,73723) 

5.profit 

c(14013,25922,41733,8505,9737,10737,18760,23150,16978) 

6.companiesData 

data.frame(fy, 

company, 

revenue, 

profit) 

以上代码将创建出如下所示的数据框,所有变量都保存在“companiedsData”当中:

 

fy

company

revenue

profit

1

2010

Apple

65225

14013

2

2011

108249

25922

3

2012

156508

41733

4

Google

29321

8505

5

37905

9737

6

50175

10737

7

Microsoft

62484

18760

8

69943

23150

9

73723

16978

(如果大家没有为各行命名,那么R会为其自动添加行数。

如果大家想在数据框中运行str()函数来查看其结构,则会看到其中的“year”被当作单独的数字来处理,而无法代表应有的“年”这一含义:

1.str(companiesData) 

2.'

data.frame'

:

obs. 

of 

variables:

 

3.$ 

fy 

num 

2010 

2011 

2012 

... 

4.$ 

company:

Factor 

w/ 

levels 

"

..:

5.$ 

revenue:

65225 

108249 

156508 

29321 

37905 

6.$ 

profit 

14013 

25922 

41733 

8505 

9737 

... 

我可能希望把自己的数据按年度进行分组,但大家别误会——我并不打算针对时间进行特殊分析。

因此,我会将fy数列转化为一个包含有Rcategory(称之为factor)的column以取代日期,如以下命令所示:

1.companiesData$fy 

as.factor(companiesData$fy) 

现在我们已经做好了各项准备工作。

向现有数据框中添加column

在R语言中,最简单的任务执行方式是向基于一个或多个column的数据框中添加新的column。

大家可能希望添加几项现有column以获取平均值或者根据各行现有数据计算出某项特定“result”。

在R语言中我们可以通过多种方式实现这一目标。

对于这样一项简单的任务,某些做法显得有些太过复杂——但请大家记住我的建议,对于那些需要处理更高难任务的高级用户来说,看似复杂的做法却往往能收到奇效。

语法一:

为新column简单创建一个变量名称,并将其添加到计算公式中作为赋值——举例来说,我们希望在新的column中计算两个现有column的总和:

1.dataFrame$newColumn 

dataFrame$oldColumn1 

dataFrame$oldColumn2 

大家可能已经猜到了,这个新增colume名为“newColumn”,其数值为oldColumn1与oldColumn2各行数值的总和。

我们的这套示例数据框名为“data”,大家可以通过将利润除以营收再乘以100的方式添加一个“margin”(利润率)column:

1.companiesData$margin 

(companiesData$profit 

companiesData$revenue) 

100 

运行结果如下:

margin

21.48409

108248

23.94664

26.66509

29.00651

25.68790

21.39910

30.02369

33.09838

23.02945

哇哦——大家可以看到,margin列中数字的小数点后取值有点太夸张了。

我们可以利用round()函数让计算结果只保留小数点后一位;

round()的格式为:

round(number(s)这里填写大家想要保留的小数点位数,数字会自动进行四舍五入)

此,我们打算为margin列中的数字保留小数点后一位:

round(companiesData$margin, 

1) 

下面就是我们得到的最新结果:

21.5

23.9

26.7

29.0

25.7

21.4

30.0

33.1

23.0

语法二:

R语言的transform()函数是我们达成目标的另一条途径。

以下为transform()的基本语法:

1.dataFrame 

transform(dataFrame, 

newColumnName 

=所需公式) 

因此,要利用transform()求得两column之和并将结果保存为新column,大家可以利用以下代码来实现:

newColumn 

oldColumn1 

oldColumn2) 

要利用transform()向我们的数据框中添加利润率column,大家需要这样操作:

1.companiesData 

transform(companiesData, 

margin 

(profit/revenue) 

100) 

接下来,我们可以利用round()函数将新column中的数值调整为只取小数点后一位。

或者,我们也可以采取一步到位的方法,直接创建一个仅保留小数点后一位的新column:

round((profit/revenue) 

100, 

1)) 

下面我们来总结round()函数的使用方法:

大家可以通过负数形式表达“小数点后的保留位数”。

举例来说,round(73842.421,1)保留的就是一位——结果为73842.4,而round(73842.421,-3)则代表取最接近的千位整数,也就是74000。

语法三:

R语言的apply()函数顾名思义,会将某个函数“应用”在数据框(或者多种其它R数据结构,但我们目前姑且只关注数据框这一种)当中。

它的语法与前两种函数相比要复杂一些,但在某些难度较高的计算过程中会起到重要作用。

apply()的基本格式为:

apply(dataFrame, 

1, 

function(x) 

) 

以上代码行的作用是在数据框内创建一个名为“newColumn”的新column;

其中的内容将由{…}的具体代码决定。

下面我们来分别解释以上代码行中各apply()参数的具体含义。

第一项apply()参数代表着现有数据框。

第二项参数,在本示例中为“1”,意思是“在row中应用一项函数”。

如果该参数为2,则代表“在column中应用一项函数”。

如果大家打算对当前column而非row进行求和或者求平均值,那么直接修改这条参数就能轻松达到目的。

第三项参数为function(x),很明显具体内容有待写入。

具体来说,在其它情况下function()部分将保持不变,但“x”则可以是任何变量名称。

那在我们的示例中,x代表着什么呢?

它的意思是将所有条目(row或者column)都将由apply()进行遍历。

最后,{…}代表我们要对遍历的每项条目进行何种操作。

请注意,apply()会对所有row或者column内的每一项条目进行查找发实现函数应用。

如果大家

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1