在r语言中,怎样在数据框中添加新列?

在r语言中,怎样在数据框中添加新列?,第1张

r语言中添加新列的方法:

假设你数据是data,那么前几列的和是rowSums(data);

然后你可以重新做一个dataframe

data_new<-data.frame(data,sum=rowSums(data))

R语言Data Frame数据框常用 *** 作:

Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的。

Data Frame每一列有列名,每一行也可以指定行名。如果不指定行名,那么就是从1开始自增的Sequence来标识每一行。

使用data.frame函数就可以初始化一个Data Frame。比如我们要初始化一个student的Data Frame其中包含ID和Name还有Gender以及Birthdate,那么代码为:

student<-data.frame(ID=c(11,12,13),Name=c("Devin","Edward","Wenli"),Gender=c("M","M","F"),Birthdate=c("1984-12-29","1983-5-6","1986-8-8”))

另外也可以使用read.table() read.csv()读取一个文本文件,返回的也是一个Data Frame对象。读取数据库也是返回Data Frame对象。

查看student的内容为:

ID   Name Gender  Birthdate

1   11  Devin       M 1984-12-29

2   12 Edward     M   1983-5-6

3   13  Wenli       F   1986-8-8

这里只指定了列名为ID,Name,Gender和Birthdate,使用names函数可以查看列名,如果要查看行名,需要用到row.names函数。这里我们希望将ID作为行名,那么可以这样写:

row.names(student)<-student$ID

Weight<-c(4.17, 5.58, 5.18, 6.11, 4.5, 4.61, 5.17, 4.53, 5.33, 5.14)

Height<-c(1.75, 1.8, 1.65, 1.9, 1.74, 1.91, 1.75, 1.8, 1.65, 1.9)

save1<-data.frame(Weight,Height)

//身高体重数据写入文本文件

write.csv(save1, file = "foo1.csv", sep = ",", col.names = TRUE)

//读取数据至data数据框

foo<-read.csv("foo1.csv", header=T, sep=",")

//data数据框新增一列bmi变量

data.frame(Weight,Height,BMI=Weight/Height)

//计算weight和height的平方的比值存入bmi变量

save2<-data.frame(save1,BMI=foo$1/foo$2)

//将更新后的data数据框写入文件。

write.csv(save2, file = "foo2.csv", sep = ",", col.names = TRUE)

选中列头,右键-》插入-》选择左还是右方插入列。

BIRT是一个Eclipse-based开放源代码报表系统。它主要是用在基于Java与J2EE的Web应用程序上。BIRT主要由两部分组成:一个是基于Eclipse的报表设计和一个可以加到你应用服务的运行期组件。BIRT同时也提供一个图形报表制作引擎。http://www.eclipse.org/birt/

一、创建第一个报表项目。

1.1创建一个项目

选择 File->New->Project 。 新项目(new project )对话出现。

打开" Business Intelligence and Reporting Tools”组,并选择"report project"。

1.2创建一个报表

选择File->New->Report 。 新建报表(new report )对话出现。

在Tree View中选择我们之前创建的项目。

接下来在文件名字段输入: Customers.rptdesign

点击 next。

选择Grouped Listing.(分组列表)。

点击 Finish。

注:新建报表对话框显示了一些现成的模板模板。

My First Report(我的第一份报表)

空白报表- 创建一个无预定义内容的空白报表。

简易列表- 使用数据源中的字段创建列表报表。

分组列表- 创建一个根据某些字段分组的列表报表。 分组列表不会显示重复的记录。 并且分组允许您创建一个子统计。

双列列表- 创建带两个子组的分组报表。

图表和类标- 创建分组报表,并附带直观表示每个组数据的图表。

双列图表和列表- 创建带两个“图表和列表”子组的分组报表

并排图表和列表- 创建一个分组报表, 其中,每个组都并排包含一个图表和一个列表

信件- A form letter in which database data is "mail-merged" into the text. The letter text can be formatted using a subset of HTML.

二、BIRT的开发界面

Cheat Sheets:在您的Eclipse工作区右边(这是默认配置)有一个Cheat Sheets View。"这个 View 会根据您所选择的模板引导你如何构建报表。

布局编辑器(Layout Editor):中心地区是布局编辑器。

调色板(Palette):显示标准的报表可视控件,您能够通过拖曳的方式添加到你的报表上。

概述(Outline):使用tree view的形式显示您的报表结构。

导航(Navigator): Eclipse将显示你的项目和项目内的报表文件。

数据资源管理器 :BIRT View 显示您的数据源(连接), 数据集 (queries) 和报表参量。 您也可以使用这个View增加数据集字段到您的报表布局(report layout)。

属性编辑器: 显示报表项目所需的properties。 它拥有标签和分组,用分类的形式来组织properties。

PropertiesView:显示和报表相关Properties ,这个view是可选的,我们在这个指南里面不会用到它。

三、建立数据源

BIRT 报表使用一个数据源连接到数据库或其它数据提供者。 BIRT 使用一个数据集从数据提供者处的检索数据。 可以将数据源理解为连接, 数据集作为query。

3.1建立数据源

让我们建立一个数据源:

打开Data explorer(数据资源管理器)。

选择Data Source(数据源)节点。

用鼠标右键单击打开d出菜单。

选择新建数据源。 新建数据源对话出现。

选择 Classic Models Inc. 示例数据库

在数据源名称输入框, 输入"Sample" 。

点击 next。

点击 Finish。

3.2建立数据集

现在我们准备好建立和测试我们的数据集。

打开数据资源管理器

选择数据集节点。

用鼠标右键单击打开d出菜单。

选择新建数据集。 新建数据集对话将出现。

“在数据集名称”输入框,输入"Customers"。

确保数据源下拉框显示的是我们之前创建的 Sample 数据源。

确保数据集类型下拉框选中的是"SQL Select Query" 。

点击Finish。

四、构建Table

我们的customer listing report 将以“表”的形式显示客户信息: 类似HTML Table, 附加了能够循环显示报表数据的能力。 我们选择的Grouped Listing 模板预先为我们构建了一个“表”, 我们只需要再填装一些细节。 在开发报表之前, 让我们介绍一下BIRT 的报表项。

BIRT 提供各种各样的报表项用于构建我们的报表。 报表项出现在Palette view。 报表项有:

•标签- 插入一个静态的文本。

•文本- 插入文本块(纯文本或HTML格式)和计算列值。 常用来创建标题, 信格式, "邮件合并" 等。

•动态文本- 插入带有可选 CLOB 数据表达式的文本块。 支持通过表达式对 advanced CLOB 数据进行 *** 作。

•数据- 插入数据集列或表达式结果。

•图象- 任何由浏览器支持的图象。 图象可能被内嵌在一个报表文件中, 或链接到你的网络服务器上的一个文件。

•网格- 提供报表项的表格布局, 很象HTML Table。

•列表- 在页眉、详细信息、页脚区段中插入数据集行的灵活格式表示。

•表- 以Table的形式呈现数据集中的数据。

•图表- 显示商业图表,如饼图、折线图, 等。

4.1在数据集选择中往table里面拖动数据。点击preview测试,或者选择view as html等方式。

4.2重设表-页眉(Table Columns )尺寸,在property edit view

4.3设置背景颜色,在property edit view

4.4设置字体,在property edit view

4.5格式化数据,字符串格式化。选择要格式的字符串,切换到“属性编辑器”的“字符串格式”选项。 选择“字符串格式”为“自定义”。在格式代码输入框中, 出现以下格式: (@@@) @@@-@@@@

4.6设置边框

4.7设置明细数据排序

4.8创造样式、应用样式、编辑样式

4.9创建一个网格

4.10插入一张图片

4.11插入运行期日期

4.12创建一个文本项

二、birt简单应用

1.去掉首页上的标题BIRT Report Viewer

找到birt\webcontent\birt\pages\layout\FramesetFragment.jsp文件在里面定义了标题

2.通过Script方式,可以实现简单的分页和行交替颜色

首先加一个表格,选中表格中的明细行,切换到Script标签页。

在onRender事件中加入以下代码 var count=1

在onCreate事件中写入

++count

if (count % 10 == 0) {

style.pageBreakAfter = "always"

}

if (count % 2 != 0) {

style.setBackgroundColor("silver")

}

即可实现每页10条记录和交替颜色功能。(这方法不行)

3.统计功能

在属性编辑器中,选中“绑定”选项然后添加聚集,即可对某一列的进行函数统计。拖动动态文本到界面上。

4.公用数据源及样式

首先新建一个library,然后在打开这个library。在outline视图中可以填加数据源,完成后打开要添加的rptdesign转到resources视图右键选中添加的视图选项。其他公用资源也可这样 *** 作。对于要添加表格线及其他一些样式的时候,可以先进行添加一个样式,然后添加到一个rptdesign的样式里面,就可以对你想要的内容进行应用样式选项了。一个小问题,表格的表格头默认情况是粗体的,选中表格头在property edit视图中点击 两次粗体选项即可。

5.参数的使用

在报表设计阶段,在数据源设置可变的参数条件sql语句中还是使用?进行匹配。然后选中parameters即可进行参数的绑定。如果sql语句是需要通过web页面端的参数进行改变的,首先是在数据集sql语句中写入一个不带任何的sql,然后选中该数据集,在主面板中选中script,在script选项中选择beforeOpen然后使用var pvalues = params[“pname”]

this.queryText += “newquery”

在web应用阶段,对报表的传递参数可以采用以下几种方式:

1.利用birt自带的标签库传递参数

2.采用url的方式传递参数

3.采用birt engine api写自己的servrlet,然后传递参数即可。

6.国际化问题

首先在报表设计阶段,点击空白处然后在property edit视图找到resources属性填上资源文件的名称。这样就关联了birt的资源文件,如果要对某个地方的文本进行国际可以选中文本然后在property edit中找到localzation即可进行国际化。

资源文件要与设计文件放在同一层目录,如果想要修改资源文件的路径。可以在进行birtengine初始化阶段进行如下设置:

EngineConfig config = new EngineConfig()

config.setResourcePath(sc.getRealPath("/WEB-INF/classes"))

7. 修改webcontent存放路径

在web应用情况下,修改webcontent存放路径问题,可以对viewservlets.jar中的ViewerServlet类修改以下两行即可:

this.viewer.setJSPRootPath("/webcontent/birt")

this.run.setJSPRootPath("/webcontent/birt")

8.web应用下对报表进行访问的方式

frameset,以frameset的形式显示报表。这个界面包含一些frame,如页面导航,报表主体在其中的一个frame中显示;使用形式:

http://localhost:8080/birtApp/frameset?__report=报表文件路径&参数=........

run,报表以一个单独的html页面或pdf显示,由于这种形式没有frmaeset,因此使用者必须自己提供相应的参数,如报表参数,页号等。使用形式:

http://localhost:8080/birtApp/run?__report=报表文件路径&参数=........

对于以上2个动作,以下列出可用的参数:

__format:报表输出格式:html或pdf,缺省是html。对于frameset不起作用。

__isnull:指明一个参数是null,常用于字符串类型。如果提供参数且值为空: - 对于日期和数字类型,BIRT会将它们当作null处理。 - 对于字符串,BIRT会将它作为空字符串。因此,为了说明某个字符串是null,通常写为:__isnull=参数。

__locale:本地化选项,缺省是jvm的locale。

__report:报表设计文件路径。

报表参数:报表参数参数值对,形式:参数名=参数值。对于frameset,直接在地址栏中输入参数名=参数值后回车,不会影响报表结果。虽然,此时选择"运行报表"时,d出的参数值已经改变。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/7937909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存