R类型5 R语言 数据帧

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px ".PingFang SC"; color: #454545 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px "Helvetica Neue"; color: #454545 }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545; min-height: 14.0px }
span.s1 { font: 17.0px "Helvetica Neue" }
span.s2 { font: 17.0px ".PingFang SC" }
span.s3 { font: 12.0px "Helvetica Neue" }
span.s4 { font: 12.0px ".PingFang SC" }
span.Apple-tab-span { white-space: pre }

R语言数据帧

1特点//

表或二维阵列状结构

每一列包含一个变量的值, 列名称应为非空。

存储在数据帧中的数据可以是数字,因子或字符类型。

每个列应包含相同数量的数据项

2创建数据帧

# Create the data frame.

emp.data <- data.frame(

emp_id = c (1:5),

emp_name = c("Rick","Dan","Michelle","Ryan","Gary"),

salary = c(623.3,515.2,611.0,729.0,843.25),

start_date = as.Date(c("2012-01-01", "2013-09-23", "2014-11-15", "2014-05-11",

"2015-03-27")),

stringsAsFactors = FALSE

)

# Print the data frame.

print(emp.data)

当我们执行上面的代码,它产生以下结果 -

emp_id    emp_name     salary     start_date

1     1     Rick        623.30     2012-01-01

2     2     Dan         515.20     2013-09-23

3     3     Michelle    611.00     2014-11-15

4     4     Ryan        729.00     2014-05-11

5     5     Gary        843.25     2015-03-27

3获取数据帧的结构//通过使用str()函数可以看到数据帧的结构。

str(emp.data)

当我们执行上面的代码,它产生以下结果 -

‘data.frame‘:   5 obs. of  4 variables:

$ emp_id    : int  1 2 3 4 5

$ emp_name  : chr  "Rick" "Dan" "Michelle" "Ryan" ...

$ salary    : num  623 515 611 729 843

$ start_date: Date, format: "2012-01-01" "2013-09-23" "2014-11-15" "2014-05-11" ...

4数据框中的数据摘要//可以通过应用summary()函数获取数据的统计摘要和性质

print(summary(emp.data))

emp_id    emp_name             salary        start_date

Min.   :1   Length:5           Min.   :515.2   Min.   :2012-01-01

1st Qu.:2   Class :character   1st Qu.:611.0   1st Qu.:2013-09-23

Median :3   Mode  :character   Median :623.3   Median :2014-05-11

Mean   :3                      Mean   :664.4   Mean   :2014-01-14

3rd Qu.:4                      3rd Qu.:729.0   3rd Qu.:2014-11-15

Max.   :5                      Max.   :843.2   Max.   :2015-03-27

5从数据帧提取数据

result <- data.frame(emp.data$emp_name,emp.data$salary)//这里获取

print(result)

当我们执行上面的代码,它产生以下结果 -

emp.data.emp_name emp.data.salary

1              Rick          623.30

2               Dan          515.20

3          Michelle          611.00

4              Ryan          729.00

5              Gary          843.25

提取所有列

result <- emp.data[1:2,]

print(result)

emp_id    emp_name   salary    start_date

1      1     Rick      623.3     2012-01-01

2      2     Dan       515.2     2013-09-23

用第2和第4列提取第3和第5行

result <- emp.data[c(3,5),c(2,4)]

print(result)

当我们执行上面的代码,它产生以下结果 -

emp_name start_date

3 Michelle 2014-11-15

5     Gary 2015-03-27

6扩展数据帧

可以通过添加列和行来扩展数据帧。

1添加列

只需使用新的列名称添加列向量。

emp.data$dept <- c("IT","Operations","IT","HR","Finance")  //添加新的列 dept

v <- emp.data

print(v)

当我们执行上面的代码,它产生以下结果 -

emp_id   emp_name    salary    start_date       dept

1     1    Rick        623.30    2012-01-01       IT

2     2    Dan         515.20    2013-09-23       Operations

3     3    Michelle    611.00    2014-11-15       IT

4     4    Ryan        729.00    2014-05-11       HR

5     5    Gary        843.25    2015-03-27       Finance

2添加行

要将更多行永久添加到现有数据帧,我们需要引入与现有数据帧相同结构的新行,并使用rbind()函数

貌似像两个数据帧合并

# Create the first data frame.

emp.data <- data.frame(

emp_id = c (1:5),

emp_name = c("Rick","Dan","Michelle","Ryan","Gary"),

salary = c(623.3,515.2,611.0,729.0,843.25),

start_date = as.Date(c("2012-01-01", "2013-09-23", "2014-11-15", "2014-05-11",

"2015-03-27")),

dept = c("IT","Operations","IT","HR","Finance"),

stringsAsFactors = FALSE

)

# Create the second data frame

emp.newdata <- data.frame(

emp_id = c (6:8),

emp_name = c("Rasmi","Pranab","Tusar"),

salary = c(578.0,722.5,632.8),

start_date = as.Date(c("2013-05-21","2013-07-30","2014-06-17")),

dept = c("IT","Operations","Fianance"),

stringsAsFactors = FALSE

)

# Bind the two data frames.

emp.finaldata <- rbind(emp.data,emp.newdata) //添加新的行,貌似就是合并

print(emp.finaldata)

当我们执行上面的代码,它产生以下结果 -

emp_id     emp_name    salary     start_date       dept

1      1     Rick        623.30     2012-01-01       IT

2      2     Dan         515.20     2013-09-23       Operations

3      3     Michelle    611.00     2014-11-15       IT

4      4     Ryan        729.00     2014-05-11       HR

5      5     Gary        843.25     2015-03-27       Finance

6      6     Rasmi       578.00     2013-05-21       IT

7      7     Pranab      722.50     2013-07-30       Operations

8      8     Tusar       632.80     2014-06-17       Fianance

时间: 2024-11-15 06:18:10

R类型5 R语言 数据帧的相关文章

C语言中文件打开模式(r/w/a/r+/w+/a+/rb/wb/ab/rb+/wb+/ab+)浅析

C语言文件打开模式浅析 在C语言的文件操作语法中,打开文件文件有以下12种模式,如下图: 打开模式  只可以读   只可以写  读写兼备 文本模式 r w a r+ w+ a+ 二进制模式 rb wb ab  rb+ (r+b)   wb+ (w+b)   ab+ (a+b)  其中,二进制模式与文本模式操作相似,只不过是以二进制流的形式读写而已,下面以文本模式为例分析: 1."r" 模式: 1.1 打开文件进行“只读”操作,即只能从文件读取内容. 1.2 若欲操作的文件不存在,则打开

python文件类型r,w,a,r+,w+,a+区别辨析

主要分成三大类: r 和 r+     "读"功能 r  只读 r+ 读写(先读后写) 辨析:对于r,只有读取功能,利用光标的移动,可以选择要读取的内容. 对于r+,同时具有读和写的功能,默认光标一开始停在开头,当进行一个操作后(无论是读还是写)光标将自动移动到末尾.写的功能如果在末尾就是添加;如果在原文本中就是修改!!! w 和 w+   "写"功能 w 只写 w+       写读(先写后读) 辨析:两个都有写的功能,只要进行操作,一定是先自动清空,再写入,慎用

【R笔记】R的内存管理和垃圾清理

R输入命令时速度不要太快,终究是个统计软件,不是编程! 写R程序的人,相信都会遇到过“cannot allocate vector of size”或者“无法分配大小为...的矢量”这样的错误.原因很简单,基本都是产生一个大矩阵等对象时发生的,最干脆的解决办法有两种,第一种是加大内存换64位系统,第二种是改变算法避免如此大的对象.第一种办法,是最好的办法,不过大对象的需求是没有止尽的,终究不是长久之道.第二种办法是最好的思路,无论多么大的对象都是可以弄小的,无非就是分而治之.时间换空间等,对算法

Android中View自定义XML属性详解以及R.attr与R.styleable的区别

为View添加自定义XML属性 Android中的各种Widget都提供了很多XML属性,我们可以利用这些XML属性在layout文件中为Widget的属性赋值. 如下所示: <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> 我们可以通过TextView所提供

s?q?l?s?e?r?v?e?r?结?果?集?转?为?字?符?串

比如有语句select username from Employee 返回结果是: username 张三 李四 王五 怎么输出一个字符串类似: 张三,李四,王五 答: declare @s varchar(1000) select @s=isnull(@s+',','')+username from Employee select @s as username --> 生成测试数据表:Employee   IF NOT OBJECT_ID('[Employee]') IS NULL     D

Python基础练习r=input(&#39;半径r=:&#39;) 半径r=2 &gt;&gt;&gt;areas=3.14*float(r)*float(r) &gt;&gt;&gt;print(&#39;area:%s&#39;%(area)) area:12.5

1.简单输入输出交互. input('please input your name:') please  input your name:xfy 'xfy' 2.用户输入两个数字,计算并输出两个数字之和:(尝试只用一行代码实现这个功能). n=input('输入第一个数字:') 输入第一个数字:2 m=input('输入第二个数字:') 输入第二个数字:4 print(int(n)+int(m)) 6.0 3.输入半径,计算圆的面积. r=input('r=') r=2 print('圆的面积:

P?H?P? ?5?.?3?连?接?s?q?l? ?s?e?r?v?e?r? ?2?0?0?8? ?R?2

我的机器为: xp sp3 sql server 2008 developer apache 2.2.2 php 5.3  从5.3开始,php就不再提供mssql.dll了,所以要php连接sql server 2008/2012必须要使用微软提供的sql server for php 2.0/3.0了. 有必要提醒一下,php5.4必须要3.0和Microsoft SQL Server 2012 Native Client. php官方帮助 http://php.net/manual/zh/

W?o?r?d?P?r?e?s?s?常?用?标?签?和?调?用?总?结

调用头部模板<?php get_header();?> 调用尾部模板<?php get_footer();?> 调用侧边栏<?php get_sidebar();?> 放在head标签内,方便插件调用:<?php wp_head(); ?> 放在footer里,body结束之前,方便插件调用:<?php wp_footer(); ?> --------------------------------------------------------

R?e?q?u?e?s?t?、?R?e?q?u?e?s?t?.?F?o?r?m?和?R?e?q?u?e?s?t?.?Q?u?e?r?y?S?t?r?i?n?g?的?区?别

Request . Request.Form 和 Request.QueryString 的区别 request 本身是一个系统的静态对象,本身也可以作为数组调用,比如 request("abc") 就是获取 request 数组中键值 "abc" 对应的值,而这个数组又不是 固定的,而是多个数组的集合,其中包含了 (QueryString ,Form ,Cookies ,ClientCertificate,ServerVariables ) 这几个服务器 变量数组