R中按组数据分析

如下的一组数据: age group 1 23.0883 1 2
25.8344 1 3 29.4648 1 4 32.7858 2 5 33.6372 1 6 34.9350
1 7 35.2115 2 8 35.2115 2 9 35.2115 2 10 36.7803 1
如果想要对两组数据分别进行均值和求和,最简单的想法是按类做分组的子矩阵,但是太麻烦。 如果要得到下面的结果:group mean sd 1
34.5 5.6 2 32.3 4.2 ...今天学到的方法是:plyr包中的ddply函数如下:dt <-
data.frame(age=rchisq(20,10),group=sample(1:2,20,rep=T))
ddply(dt,~group,summarise,mean=mean(age),sd=sd(age))
~group是指可以使用levels(factor(data$group))函数得到的类别,age即为想得到的按组的处理目标。还有一种方法,今天来不及实验,先放到下面:
Here is the plyr one line variant using ddply: dt <-
data.frame(age=rchisq(20,10),group=sample(1:2,20,rep=T))
ddply(dt,~group,summarise,mean=mean(age),sd=sd(age)) Here is another one line
variant using new package data.table. dtf <-
data.frame(age=rchisq(100000,10),group=factor(sample(1:10,100000,rep=T))) dt
<- data.table(dt) dt[,list(mean=mean(age),sd=sd(age)),by=group] This one is
faster, though this is noticeable only on table with 100k rows. Timings on my
Macbook Pro with 2.53 Ghz Core 2 Duo processor and R 2.11.1:> system.time(aa
<- ddply(dtf,~group,summarise,mean=mean(age),sd=sd(age))) utilisateur
système écoulé 0.513 0.180 0.692 > system.time(aa
<- dt[,list(mean=mean(age),sd=sd(age)),by=group]) utilisateur système
écoulé 0.087 0.018 0.103 Further savings are possible if we
use setkey:> setkey(dt,group)>
system.time(dt[,list(mean=mean(age),sd=sd(age)),by=group]) utilisateur
système écoulé 0.040 0.007 0.048

R中按组数据分析,布布扣,bubuko.com

时间: 2024-10-11 13:24:10

R中按组数据分析的相关文章

R中数据结构

进行任何数据分析的第一步:创建包含研究信息的数据集. 在R中这个步骤包括以下两步: 1. 选择一种数据结构来存储数据: 2. 将数据输入或导入到这个数据结构中. 一. 数据集 数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量. 下图是一个假想的病例数据集: R中的数据结构包括:标量.向量.矩阵.数组.数据框和列表. 上图实际为R中的一个数据框. R可以处理的数据类型包括:数值类型.字符型.逻辑性(TRUE/FALSE).复数型(虚数)和原生型(字节). 上图中 前三列为数值型变量.后

2015CDAS中国数据分析师行业峰会:R语言量化投资数据分析应用

前言 第一次在以数据分析为切入点的会议上做演讲,感觉还是挺不一样的.大会分为"金融数据洞察","医疗数据洞察","电商数据洞察","大小数据洞察"的4个部分,分别介绍了数据分析在不同行业的应用情况.当然,这次我是在"金融数据洞察"分论坛. 我非常有幸作为分享嘉宾参加2015年的中国数据分析师行业峰会,分享R语言在金融领域中的应用. 目录 我的演讲主题:R语言量化投资数据分析应用 会议体验和照片分享 整体文章

R语言编程艺术(2)R中的数据结构

本文对应<R语言编程艺术>第2章:向量:第3章:矩阵和数组:第4章:列表:第5章:数据框:第6章:因子和表 ========================================================================= R语言最基本的数据类型就是向量(vector),单个数值和矩阵都是向量的一种特例. 声明:R中不需要声明变量,但是注意函数式语言的特性,如果读写向量中的元素时,R事先不知道对象是向量的话,则函数没有执行的对象.如下代码是无法工作的: y[1]

Linux网络管理(7)centos7中team组的实现

Linux网络管理(7)centos7中team组的实现 在linux 中,centos7之前都是使用bond机制来实现多网络绑定同一个IP地址,来对网络提供访问,并按不同的模式来负载均衡或者轮回接替管理处理数据.而到了contos7之后,提供了一种强大的工具,nmcli工具命令,使用此工具,将会根据命令参数的配置来重新生成特定的配置文件来供网络接口使用,方便而又灵活.在linux不再使用 bond机制定义,而是使用网路组 team 机制,把 team组当作一个设备.下面通过案例说. 主备模式t

R中的apply族函数和多线程计算

一.apply族函数 1.apply  应用于矩阵和数组 # apply # 1代表行,2代表列 # create a matrix of 10 rows x 2 columns m <- matrix(c(1:10, 11:20), nrow = 10, ncol = 2) # mean of the rows apply(m, 1, mean) [1] 6 7 8 9 10 11 12 13 14 15 # mean of the columns apply(m, 2, mean) [1]

在R中使用支持向量机(SVM)进行数据挖掘(上)

在R中,可以使用e1071软件包所提供的各种函数来完成基于支持向量机的数据分析与挖掘任务.请在使用相关函数之前,安装并正确引用e1071包.该包中最重要的一个函数就是用来建立支持向量机模型的svm()函数.我们将结合后面的例子来演示它的用法. 下面这个例子中的数据源于1936年费希尔发表的一篇重要论文.彼时他收集了三种鸢尾花(分别标记为setosa.versicolor和virginica)的花萼和花瓣数据.包括花萼的长度和宽度,以及花瓣的长度和宽度.我们将根据这四个特征来建立支持向量机模型从而

在R中使用支持向量机(SVM)进行数据挖掘(下)

书接上文 在R中使用支持向量机(SVM)进行数据挖掘(上) http://blog.csdn.net/baimafujinji/article/details/49885481 第二种使用svm()函数的方式则是根据所给的数据建立模型.这种方式形式要复杂一些,但是它允许我们以一种更加灵活的方式来构建模型.它的函数使用格式如下(注意我们仅列出了其中的主要参数). svm(x, y = NULL, scale = TRUE, type = NULL, kernel = "radial",

在R中整理数据

原始数据一般分散杂乱,并含有缺失和错误值,因此在进行数据分析前首先要对数据进行整理. 一.首先,了解原始数据的结构. 可使用如下函数(归属baseR)来查看数据结构: class(dataobject)  查看数据对象的类别 dim(dataobject)  查看数据的维度 names(dataobject)  查看列名 str(dataobject) 查看数据概要 glimpse(dataobject) 查看数据概要 二.将数据变得整洁 可使用下列函数(归属package: tidyr)整理数

(数据科学学习手札19)R中基本统计分析技巧总结

在获取数据,并且完成数据的清洗之后,首要的事就是对整个数据集进行探索性的研究,这个过程中会利用到各种描述性统计量和推断性统计量来初探变量间和变量内部的基本关系,本篇笔者便基于R,对一些常用的数据探索方法进行总结: 1.描述性统计量部分 1.1 计算描述性统计量的常规方法 summary() summary()函数提供了最小值.最大值.四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计: > #挂载鸢尾花数据 > data(iris) > #计算鸢尾花各变量的基本描述统计量 &