R语言-如何按照某一列分组求均值

主要介绍tapply函数:

每次只能求一列

aggregate函数:每次按组可以求多列

tapply(shuju[shuju[,3],shuju$year,mean)

以年份为组,求shuju表第三列的均值

aggregate(shuju[,3:4],list(shuju[,2]),mean)

以年份为均值,求数据表第三列,第四列的均值

补充:R语言按某一列分类求均值+绘图总结

看代码吧~

D<-aggregate(.~K,data=data1,mean)  #求数据集data1按照K分类后所有列的均值
rm(list=ls())   #删除所有对象
attach()  #锁定某个对象
with(mtcars,{print(summary(mpg)),plot(mpg,disp)}  #with作用等同attach
grades<-read.table('student.csv',header=TRUE,row.namens='studentid',sep=',')
#读表

dev.new()  #开启新图框
dev.off()  #关闭图框

dose<-c(20,30,40,50,60)
drugA<-c(16,20,25,35,42)
drugB<-c(20,35,46,61,70)
opar<-par(no.readonlyTRUE)
par(pin=c(2,3))   #图片尺寸
par(cex.axis=.75,font.axis=3)
par(lwd=2,cex=1.5)
plot(dose,drugA,type='b',pch=19,lty=2,col='red')
plot(dose,drug,type='b',pch=23,lty=6,col='blue',bg='green')
par(opar)
plot(dose,drugA,type='b',col='red',
lty=2,pch=2,lwd=2,main='clain',
sub='this is',xlab='dosa',ylab='drug',
xlim=c(0,60),ylim=c(0,70))

图例

#legend(location,title,legend)

dose<-c(20,30,40,50,60)
drugA<-seq(1,10,2)
drugB<-seq(2,20,2)
opar<-par(no.readonly=TRUE)
par(lwd=2,cex=1.5,font.lab=2)
plot(dose,drugA,type='b',pch=15,lty=1,
col='blue',ylim=c(0,60),main='that',
xlab='drug',ylab='resopme')
lines(dose,drugB,type='b',pch=17,lty=2,col='blue')

legend('topleft',inset=0.05,title='main',c('A','B'),lty=c(1,2),
pch=c(15,17),col=c('red','blue'))
par(opar)

画2*2图:

attach(mtcars)
opar<-par(no.readonly=TRUE)
par(mfrow=c(2,2))
plot(wt,mpg,main='11')
plot(wt,disp,main='xx')
hist(wt,main='dd')
boxplot(wt,main='ds')
par(opar)
detach(mtcars)

画3*1图:

attach(mtacars)
opar<-par(no.readonly=TRUE)
par(mfrow=c(3,1))
hist(wt)
hist(disp)
hist(mpg)
par(opar)
detach(mtcars)

第一幅图在第一行,第二三副图在第二行:

attach(mtcars)
opar<-par(no.readonly=TRUE)
layout(matrix(c(1,1,2,3)2,2,byrow=TRUE))
hist(wt)
hist(mpg)
hist(disp)
detach(macars)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • R语言柱状图排序和x轴上的标签倾斜操作

    R语言做柱状图大致有两种方法, 一种是基础库里面的 barplot函数, 另一个就是ggplot2包里面的geom_bar 此处用的是字符变量 统计其各频数,然后做出其柱状图.(横轴上的标签显示不全) t <- sort(table(dat1$L), decreasing = TRUE) #将频数表进行排序 r <- barplot(t, col = "blue", main = "柱状图", ylim = c(0,12), names.arg = di

  • R语言-如何截取变量中指定位置的若干个字符

    例如,某数据库如下,需要把第二个变量里面的ID号码(格式为T-20-252-02)提取出来作为一个新变量. 命令如下: b=readWorksheetFromFile(temp[11],sheet=1) 读入excel数据,命名为数据库b,这里temp[11]是读入temp中第11个文件名对应的文件 attach(b) attach数据库,之后即可直接用变量名file, 否则要用b$file b$id=substr(File,regexpr("T",File),regexpr(&quo

  • R语言中for循环的并行处理方式

    前言 本文用于记录笔者在将R语言中的for语句并行化处理中的一些问题. 实验 这里使用foreach和doParallel包提供的函数实现for语句的并行处理. for语句脚本 func <- function(x, y, z) { return(x^y/z) } # >>> main <<< x <- 2 y <- 3 z <- 1:100000 start <- (proc.time())[3][[1]] a <- 0 for (

  • R语言-实现提取包含某字符串的行变量

    已解决 用grep函数 A=read.table("clipboard",sep="/t",header=T) A[grep(pattern="/resource/activity",A[,1]),] 补充:R语言 如何截取字符串特定字符前或后的字符串 如待处理字符串是: topic = "#全国累计报告72436例新冠肺炎#/#全国累计报告72436例新冠肺炎#.csv" 需要截取出:"全国累计报告72436例新冠

  • R语言-如何将循环所得的矩阵组成一个矩阵

    在矩阵合并中,常见的方法有cbind()和rbind() 其中,前者为按列合并,后者为按行合并. 但是这两个函数有个缺点,就是不能应用到循环之中.例如: A<-matrix(1:12,nrow = 4,byrow = T) B<-matrix(1:8,nrow = 4,byrow = T) C<-cbind(A,B) 得到的矩阵C为[按列合并两者行数必须相同]: 但是如果将这个方法应用在循环中,就无法取得预期效果: A<-matrix(1:12,nrow = 4,byrow = T

  • R语言拼接字符串_paste的用法说明

    R中自带的字符串连接的函数是paste. 先来看一下官方文档里对paste用法的解释: 基本格式: paste (-, sep = " ", collapse = NULL) 其中,-表示对象,可以有多个,中间用逗号隔开. sep表示分隔符,默认为空格. collapse表示如果不指定值,那么函数paste的返回值是-的对象之间通过sep指定的分隔符连接后得到的一个字符型向量:如果为其指定了特定的值,那么自变量连接后的字符型向量会再被连接成一个字符串,之间通过collapse的值分隔.

  • R语言本地安装包图文教程

    第一步 从R语言官网,下载package: 以 'data.table'为例,如图. 找到最左边一列中的Packages点击, 再点中间Table of available packages 或Table of available packages sorted by name 第二步 下载好包到本地后, 别忘了下载到哪了. 然后在R软件选择-程序包-install package from local files,选择下载好的 'data.table'文件. 结束~ 补充:R语言-包的安装.载

  • R语言:排序的应用操作

    工作中遇到过许多看起来挺复杂的数据筛选,本质上都可以用排序解决,这里以R自带的mtcar数据集为例做一个记录. 首先简单介绍一下mtcar数据集,mtcar(Motor Trend Car Road Tests)是一个32行11列的数据集,记录了32种汽车的11种性能,具体数据如下: > mtcars mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 M

  • R语言-如何按照某一列分组求均值

    主要介绍tapply函数: 每次只能求一列 aggregate函数:每次按组可以求多列 tapply(shuju[shuju[,3],shuju$year,mean) 以年份为组,求shuju表第三列的均值 aggregate(shuju[,3:4],list(shuju[,2]),mean) 以年份为均值,求数据表第三列,第四列的均值 补充:R语言按某一列分类求均值+绘图总结 看代码吧~ D<-aggregate(.~K,data=data1,mean) #求数据集data1按照K分类后所有列

  • R语言 使用ggplot2绘制好看的分组散点图

    我们以iris数据集为例,该数据集包括花萼的长度和宽度,花瓣的长度和宽度,以及物种,如下图: 本文我们要绘制不同物种下花萼的长度和宽度的分布情况,以及二者之间的相关性关系. 1. 首先载入ggplot2包, library(ggplot2) 2. 然后进行ggplot(data = NULL, mapping = aes(), ..., environment = parent.frame())绘制,在绘制中第一个参数是数据,第二个参数是数据映射,是绘制的全局变量,其中包含的参数有x,y,col

  • R语言 实现data.frame 分组计数、求和等

    df为1个data.frame对象,有stratum和psu两列,这里统计stratum列计数 方法1: cnt = table(df$stratum) 方法2: cnt = tapply(df$psu, INDEX=df$stratum, FUN=length) 在方法2的基础上,只要改变FUN函数就可以实现分组求和.求均值等功能,如下 分组求均值: tapply(df$psu, INDEX=df$stratum, FUN=mean) #(等价于python中的df.groupby('stra

  • R语言列筛选的方法select实例详解

    目录 前言 1. 数据描述 2. 使用R语言默认的方法:列选择 3. tidyverse的rename函数 4. tidyverse的select函数 5. select函数注意事项 5.1 绝对引用函数 5.2 放到环境变量中 6. 提取h开头的列 7. 提取因子和数字的列 总结 前言 我们知道,R语言学习,80%的时间都是在清洗数据,而选择合适的数据进行分析和处理也至关重要,如何选择合适的列进行分析,你知道几种方法? 如何优雅高效的选择合适的列,让我们一起来看一下吧. 1. 数据描述 数据来

  • R语言实现对数据框按某一列分组求组内平均值

    可使用aggregate函数 如: aggregate(.~ID,data=这个数据框名字,mean) 如果是对数据框分组,组内有重复的项,对于重复项保留最后一行数据用: pcm_df$duplicated <- duplicated(paste(pcm_df$OUT_MAT_NO, pcm_df$Posit, sep = "_"), fromLast = TRUE) pcm_df <- subset(pcm_df, !duplicated) pcm_df$duplicat

  • R语言删除/添加数据框中的某一行/列

    假如数据是这样的,这是有一个数据框 > A <- data.frame(姓名 = c("张三", "李四", "王五"), 体重 = c(50, 70, 80), 视力 = c(5.0, 4.8, 5.2)) > A 姓名 体重 视力 1 张三 50 5.0 2 李四 70 4.8 3 王五 80 5.2 删除第一行"张三"的信息 > A <- A[-1,] > A 姓名 体重 视力 2 李

  • R语言-实现按日期分组求皮尔森相关系数矩阵

    R语言按日期分组求相关系数 前几天得到了3700+支股票一周内的波动率,想要计算每周各个股票之间的相关系数并将其可视化.最终结果保存在制定文件夹中. 部分数据如下: 先读取数据 data<-read.csv("D:/data/stock_day_close_price_week_series.csv", header = TRUE,blank.lines.skip = TRUE) 利用mice包处理缺失值: library(lattice) library(MASS) libra

  • R语言-使用ifelse进行数据分组

    数据分组,根据数据分析对象的特征,按照一定的数值指标,把数据分析对象划分为不同的区间部分来研究,以揭示内在的联系和规律性: 在R中,我们常用ifelse函数来进行数据的分组,跟excel中的if函数是同一种用法. ifelse(condition,TRUE,FALSE) > data <- read.table('1.csv', sep='|', header=TRUE); > > level <- ifelse( + data$cost<=20, "(0,2

  • R语言数据可视化ggplot绘制置信区间与分组绘图技巧

    目录 1. 单组情况 1)构造数据集 2)绘制置信区间 2. 多组情况 方法1 1)构造数据集 2)绘制置信区间 方法2 1)构造数据集 2)绘制置信区间 3)美化 1. 单组情况 1)构造数据集 x <- 1:10 y <- x^2 ci_l <- x^2 - 0.5 * x ci_r <- x^2 + 0.5 * x dat_plot <- data.frame(x, y, ci_l, ci_r) 数据集长下面这样: x y ci_l ci_r 1 1 1 0.5 1.5

  • R语言绘制带ErrorBar的分组条形图代码的分享

    目录 第一种实现方法:用aggregate计算数据 第二种实现方法:用dplyr包计算数据 笔者近期画了一张带error bar的分组条形图,将相关的代码分享一下. 感谢网友青山屋主的建议,提示笔者要严谨区分技术重复和生物学重复,所以笔者对文章做修改后重发.如果各位有任何建议,欢迎指正. 本文旨在给出一种利用R对生物学重复数据画带error bar的分组条形图的方法. 所用数据是模拟生成的:分成三个组,每个组进行了若干次生物学重复:测量的是3种基因的表达量.数据的部分内容如下: ## gene1

随机推荐