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('stratum').psu.mean)

补充:R语言 | 自定义函数对数据集(data.frame)的列进行条件判断计算

1.使用iris数据集

> iris_10 <- head(iris, n = 10)
## 自定义函数:如果x >= 5.0, z = y *10
> get_With_function <- function(x, y, z){
+   if(x >= 5.0){
+     z <- y * 10
+   }
+   c(zlie = z )
+ }

2.保险起见,设定z列为0,可能也不需要

> iris_10$z <- 0

3.运用自定义函数,对data.frame的x行进行判断,对y列进行运算,赋值到z列

4…注意Map的使用

> iris_10$z <- with(
+   iris_10,
+   Map(
+     get_With_function,
+     iris_10$Sepal.Length,
+     iris_10$Sepal.Width,
+     z
+   )
+   )
> iris_10
  Sepal.Length Sepal.Width Petal.Length Petal.Width
1      5.1     3.5     1.4     0.2
2      4.9     3.0     1.4     0.2
3      4.7     3.2     1.3     0.2
4      4.6     3.1     1.5     0.2
5      5.0     3.6     1.4     0.2
6      5.4     3.9     1.7     0.4
7      4.6     3.4     1.4     0.3
8      5.0     3.4     1.5     0.2
9      4.4     2.9     1.4     0.2
10     4.9     3.1     1.5     0.1
  Species z
1  setosa 35
2  setosa 0
3  setosa 0
4  setosa 0
5  setosa 36
6  setosa 39
7  setosa 0
8  setosa 34
9  setosa 0
10 setosa 0

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

(0)

相关推荐

  • 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语言求一行(列表、list)数据的平均数操作

    R语言求一个列表的平均数可以使用mean() : mean英文意思有平均数的含义 x=c(1,3,5,7,9) max(x) #这样即可求得平均数为 : 5 假如读取过一个csv文件之后,要求其中一行数据中指定某个区间内的平均数可以使用rowMeans() data = read.csv("input.csv",sep=",",header=T) rowMeans(data[10:17]) 补充:R语言-数据框分组求平均值 [技术关键] 1.从excel把数据读到数

  • R语言时间序列知识点总结

    时间序列对象:变量随着时间变化 时间序列的回归函数(例如ar或arima)通常以时间序列作为参数 许多绘图函数都有针对时间序列对象的特殊方法 ts函数创建时间序列对象 ts(data = NA, start = 1, end = numeric(0), frequency = 1, deltat = 1, ts.eps = getOption("ts.eps"), class = , names = ) data参数指定时间序列的观测值,其他参数指定观测值的起始区间 ts函数参数的含义

  • 如何改变R语言默认存储包的路径

    怎么更改R中包的存储路径呢? 方法一 可以在R里面用如下命令 .libPaths("C:/Program Files/R/R-3.3.1/library") 方法二 在安装某一个包得时候用如下命令 install.packages("thepackage",lib="/path/to/directory/with/libraries") 补充:如何永久改变R中 .libPaths()?R语言修改 libPath包的储存路径 写在前面 我们有时候新

  • R语言数据类型知识点总结

    通常,在使用任何编程语言进行编程时,您需要使用各种变量来存储各种信息. 变量只是保留值的存储位置. 这意味着,当你创建一个变量,你必须在内存中保留一些空间来存储它们. 您可能想存储各种数据类型的信息,如字符,宽字符,整数,浮点,双浮点,布尔等.基于变量的数据类型,操作系统分配内存并决定什么可以存储在保留内存中. 与其他编程语言(如 C 中的 C 和 java)相反,变量不会声明为某种数据类型. 变量分配有 R 对象,R 对象的数据类型变为变量的数据类型.尽管有很多类型的 R 对象,但经常使用的是

  • 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语言中data.frame的常用操作总结

    前言:近段时间学习R语言用到最多的数据格式就是data.frame,现对data.frame常用操作进行总结,其中函数大部分来自dplyr包,该包由Hadley Wickham所作,主要用于数据的清洗和整理. 一.创建 data.frame创建较为容易,调用data.frame函数即可.本文创建一个关于学生成绩的数据框,接下来大部分操作都对该数据框进行,其中学生成绩随机产生 > library(dplyr) #导入dplyr包 > options(digits = 0) #保留整数 >

  • 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语言实现各种数据可视化的超详细教程

    目录 1 主成分分析可视化结果 1.1 查看莺尾花数据集(前五行,前四列) 1.2 使用莺尾花数据集进行主成分分析后可视化展示 2 圆环图绘制 3 马赛克图绘制 3.1 构造数据 3.2 ggplot2包的geom_rect()函数绘制马赛克图 3.3 vcd包的mosaic()函数绘制马赛克图 3.4 graphics包的mosaicplot()函数绘制马赛克图 4 棒棒糖图绘制 4.1 查看内置示例数据 4.2 绘制基础棒棒糖图(使用ggplot2) 4.2.1 更改点的大小,形状,颜色和透

  • R语言实现ggplot重绘天猫双十一销售额曲线图过程

    目录 Let's start 输入数据 粗略绘图 完善散点图 添加拟合曲线 在散点上添加销售额 删除不必要的背景线 终极美化 小作业 前一段时间,很多人被这张图刷屏了: 这张图的来源是一篇名为 "淘宝2009-2018年历年双11销售额数据造假" 的文章.图中散点为天猫双十一销售额数据,曲线为原作者拟合的回归线.乍一看散点完美地分布在曲线上,原作者便直接声称:"淘宝双十一销售额数据造假!不可能有这么完美的拟合!" 可事实真的是这样吗? 作为一个热爱画画的博主,我们先

  • R语言中矩阵matrix和数据框data.frame的使用详解

    本文主要介绍了R语言中矩阵matrix和数据框data.frame的一些使用,分享给大家,具体如下: "一,矩阵matrix" "创建向量" x_1=c(1,2,3) x_1=c(1:3) x_2=1:3 typeof(x_1)==typeof(x_2)#查看目标类型 x_3=seq(1,6,length=3)#将1--6分为3个数 a<-rep(1:3,each=3) #1到3依次重复 c<-rep(1:3,times=3) #1到3重复3次 d<

  • R语言 data.frame()命令的使用说明

    同expand.grid() 一样,data.frame() 也是一个生产数据框的命令 不同的是,两者产生的结果,要求不一样 data.frame() 的命令,如 data.frame(x=c(1:4),m=c(10,20,30),n=c(5:16)) x m n 1 1 10 5 2 2 20 6 3 3 30 7 4 4 10 8 5 1 20 9 6 2 30 10 7 3 10 11 8 4 20 12 9 1 30 13 10 2 10 14 11 3 20 15 12 4 30 16

  • 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

随机推荐