首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在R中使用仅应用于数字列的变分函数和rollmean函数高效地创建新列令人困惑

在R中,如果你想要对数据框中的数字列应用变分函数(例如方差)和滚动平均函数(例如rollmean),并且希望高效地创建新列,你可以使用dplyr包来实现。以下是一个示例代码,展示了如何仅对数字列应用这些函数并创建新列:

代码语言:txt
复制
# 安装并加载dplyr包
if (!require("dplyr")) {
  install.packages("dplyr")
  library(dplyr)
}

# 创建一个示例数据框
df <- data.frame(
  A = c(1, 2, 3, 4, 5),
  B = c(5, 4, 3, 2, 1),
  C = c("a", "b", "c", "d", "e")
)

# 定义一个函数来计算滚动平均
roll_mean <- function(x, k) {
  rollapply(x, width = k, FUN = mean, fill = NA, align = "right")
}

# 使用dplyr的mutate_if函数仅对数字列应用变分和滚动平均
result <- df %>%
  mutate_if(is.numeric, ~ var(., na.rm = TRUE)) %>%
  mutate_if(is.numeric, ~ roll_mean(., k = 2))

# 查看结果
print(result)

在这个示例中,我们首先创建了一个包含数字和非数字列的数据框。然后,我们定义了一个roll_mean函数来计算滚动平均。接下来,我们使用dplyr包中的mutate_if函数来仅对数字列应用方差计算和滚动平均函数。

基础概念

  • 变分函数:用于计算数据的方差,衡量数据的离散程度。
  • 滚动平均函数:用于计算数据序列在一定窗口内的平均值,常用于平滑时间序列数据。

优势

  • 高效性:使用dplyr包的mutate_if函数可以仅对特定类型的列进行操作,提高计算效率。
  • 灵活性:可以轻松地对不同类型的列应用不同的函数。

类型

  • 变分函数:如var()
  • 滚动平均函数:如自定义的roll_mean函数。

应用场景

  • 数据分析:在处理时间序列数据时,常需要计算滚动平均来平滑数据。
  • 数据预处理:在机器学习中,常需要对数据进行标准化或归一化处理,变分函数可以帮助评估数据的离散程度。

可能遇到的问题及解决方法

  1. 非数字列的处理:如果数据框中包含非数字列,直接应用数学函数会报错。使用mutate_if可以避免这个问题。
  2. 滚动窗口大小的选择:选择合适的窗口大小对于滚动平均的计算至关重要。过小的窗口可能导致结果波动较大,过大的窗口可能掩盖数据的真实趋势。

参考链接

通过这种方式,你可以高效地对数据框中的数字列应用变分函数和滚动平均函数,并创建新列。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MIT正式发布编程语言Julia 1.0:Python、R、C++三合一

除此之外,Julia 语言还可以轻松使用 Python、R、C/C++ Java 库,这极大地扩展了 Julia 语言使用范围。...Julia 程序通过 LLVM 为多个平台编译高效本地代码。 通用:它使用多分派作为范例,使得表达许多面向对象函数编程模式变得容易。...允许表示处理缺失数据对于统计和数据科学来说是很基础典型 Julia 编程形式解决方案是通用、可组合高性能。... Julia 1.0 ,可以很简单将广播扩展到自定义类型,并在 GPU 其它向量化硬件上实现高效优化计算,为未来更高性能效益奠定了基础。...现在可以用声明参数类型构造函数方式调用它们自己,这消除了语言句法令人困惑且模糊地方。 完全重新设计迭代协议,使之更易实现多种可迭代量。

1.1K40

学界 | MIT正式发布编程语言Julia 1.0:Python、R、C++三合一

除此之外,Julia 语言还可以轻松使用 Python、R、C/C++ Java 库,这极大地扩展了 Julia 语言使用范围。...Julia 程序通过 LLVM 为多个平台编译高效本地代码。 通用:它使用多分派作为范例,使得表达许多面向对象函数编程模式变得容易。... Julia 1.0 ,可以很简单将广播扩展到自定义类型,并在 GPU 其它向量化硬件上实现高效优化计算,为未来更高性能效益奠定了基础。...现在可以用声明参数类型构造函数方式调用它们自己,这消除了语言句法令人困惑且模糊地方。 完全重新设计迭代协议,使之更易实现多种可迭代量。...Julia 1.0 没有设计三种不同泛型函数(start、next、done)方法,而是设计 iterate 函数一参数二参数方法。这通常允许开始状态使用包含默认值单一定义来便捷定义迭代。

1.1K20
  • R语言基础-数据清洗函数pivot_longer

    names_to:一个字符向量,指定要根据存储 cols 指定数据列名信息创建一个或多个。如果长度为 0,或者如果提供了 NULL,则不会创建任何。...names_transform, values_transform:(可选)列名-函数列表。或者,可以提供一个函数,该函数应用于所有。如果您需要更改特定类型,请使用这些参数。...如果重复,默认值“check_unique”会出错。使用“minimal”允许输出重复,或“unique”通过添加数字后缀来消除重复。...values_to:一个字符串,指定要从存储单元格值数据创建名称。...values_drop_na:如果为 TRUE,将删除 value_to 包含 NA 行。这有效将显式缺失值转换为隐式缺失值,并且通常应在数据缺失值由其结构创建使用

    6.7K30

    【如何在 Pandas DataFrame 插入一

    前言:解决Pandas DataFrame插入一问题 Pandas是Python重要数据处理分析库,它提供了强大数据结构函数,尤其是DataFrame,使数据处理变得更加高效便捷。...解决DataFrame插入一问题是学习使用Pandas必要步骤,也是提高数据处理分析能力关键所在。 Pandas DataFrame 插入一个。...不同插入方法: Pandas,插入列并不仅仅是简单将数据赋值给一个。...实际应用,我们可以根据具体需求使用不同方法,如直接赋值或使用assign()方法。 Pandas是Python必备数据处理分析库,熟练使用它能够极大地提高数据处理分析效率。...通过本文,我们希望您现在对 Pandas DataFrame 插入方法有了更深了解。这项技能是数据科学分析工作一项基本操作,能够使您更高效地处理定制您数据。

    75710

    Pandas 数据类型概述与转换实战

    我们必须手动更正这些数据类型 pandas 中转换数据类型,有三个基本选项: 使用 astype() 强制转换数据类型 创建自定义函数来转换数据 使用 pandas 函数,例如 to_numeric... sales ,数据包括货币符号以及每个值逗号; Jan Units ,最后一个值是“Closed”,它不是数字 我们再来尝试转换 Active df['Active'].astype...但这不是 pandas 内置数据类型,所以我们使用 float 方法 现在我们可以使用 pandas apply 函数将其应用于 2016 所有值 df['2016'].apply(convert_currency...Pandas astype() 函数更复杂自定义函数之间有一个中间地带,这些辅助函数对于某些数据类型转换非常有用 到目前为止,我们没有对日期或 Jan Units 做任何事情。...这两者都可以简单使用内置 pandas 函数进行转换,例如 pd.to_numeric() pd.to_datetime() Jan Units 转换存在问题原因是包含非数字值。

    2.4K20

    独家 | 用于数据清理顶级R包(附资源)

    因为没有它,您将很难看到重要内容,并可能由于数据重复,数据异常或缺少信息等原因做出错误决策。 R,作为一种能够应用于统计计算图形开源语言,是最常用最强大数据编程工具之一。...这是一种快速发现任何潜在数据异常好方法。 接下来,您可以使用直方图来更好地理解数据分布。这将可视化显示数据集或您特别希望观察任何数字任何异常值。...这个函数允许你R studio编写SQL代码来选择你数据元素 Janitor包 该软件包能够通过多个查找重复项,并轻松从您数据框创建友好。...它甚至还有一个get_dupes()函数,用于多行数据查找重复值。如果您希望以更高级方式重复数据删除,例如,查找不同组合或使用模糊逻辑,您可能需要查看重复数据删除工具。...随着库一直涌现,开始任何新项目之前进行研究并获得正确库是非常重要

    1.4K21

    R语言中 apply 函数详解

    因此,PythonR中都有大量函数工具可以帮助我们完成这项任务,这一点也不奇怪。 今天,我们将使用R并学习R中转换数据时使用最广泛一组“apply”函数。...这组函数提供了对数据高效快速操作。当我们只想处理某些时,这特别有用。这组函数称为apply()函数。...因此,mapply函数用于对通常不接受多个列表/向量作为参数数据执行函数。当你要创建时,它也很有用。...现在,我们将创建一个变量,该变量包含V1V3乘积: mapply(function(x, y) x/y, df$V1, df$V3) ?...我们还可以使用mapply()函数创建一个显示花瓣长度花瓣宽度之和: iris_df['Sum_Petal'] <- mapply(function(x, y) x+y, iris_df$Petal.Length

    20.4K40

    Numpy库

    通过这些基础知识资源,初学者可以逐步掌握NumPy,并应用于实际科学计算和数据分析任务。 NumPy中有哪些高级数学函数统计函数?...NumPy 可以使用 numpy.linalg.qr () 函数来实现这一解 。 特征值分解(Eigendecomposition) : 特征值分解是将矩阵分解为其特征值特征向量乘积。...Cholesky 分解适用于正定矩阵,将矩阵分解为一个下三角矩阵其转置乘积。NumPy 可以使用 numpy.linalg.cholesky () 函数来实现这一解 。...深度学习框架,NumPy也被广泛应用于神经网络训练过程。例如,训练神经网络时,每轮训练包括前向计算、损失函数(优化目标)后向传播三个步骤。...通过使用NumPy,可以更高效实现这些步骤,从而加速整个训练过程。

    9110

    python数据科学系列:pandas入门详细教程

    支持一维二维数据,但数据内部可以是异构数据,要求同数据类型一致即可 numpy数据结构支持数字索引,而pandas数据结构则同时支持数字索引标签索引 从功能定位上看: numpy虽然也支持字符串等其他数据类型...或字典(用于重命名行标签标签) reindex,接收一个序列与已有标签匹配,当原标签不存在相应信息时,填充NAN或者可选填充值 set_index/reset_index,互为逆操作,...ix,可混合使用标签和数字索引,但往往容易混乱,所以现已弃用 05 数据处理 ?...尤为强大是,除了常用字符串操作方法,str属性接口中还集成了正则表达式大部分功能,这使得pandas处理字符串列时,兼具高效强力。例如如下代码可用于统计每个句子单词个数 ?...apply,既适用于series对象也适用于dataframe对象,但对二者处理粒度是不一样:apply应用于series时是逐元素执行函数操作;apply应用于dataframe时是逐行或者逐执行函数操作

    14K20

    R语言第二章数据处理⑤数据框转化计算目录正文

    正文 本篇描述了如何计算R数据框并将其添加到数据框。一般使用dplyr R以下R函数: Mutate():计算变量并将其添加到数据表。 它保留了现有的变量。...同时还有mutate()transmutate()三个变体来一次修改多个: Mutate_all()/ transmutate_all():将函数应用于数据框每个。...Mutate_at()/ transmutate_at():将函数应用于使用字符向量选择特定 Mutate_if()/ transmutate_if():将函数应用于使用返回TRUE谓词函数选择...my_data %>% mutate(sepal_by_petal_l = Sepal.Length/Petal.Length) transmute:通过删除现有变量来创建变量,删除现有,添加...tbl:一个tbl数据框 funs:由funs()生成函数调用列表,或函数名称字符向量,或简称为函数。predicate:要应用于或逻辑向量谓词函数

    4.1K20

    20个能够有效提高 Pandas数据分析效率常用函数,附带解释例子

    本文将介绍20个常用 Pandas 函数以及具体示例代码,助力你数据分析变得更加高效。 ? 首先,我们导入 numpy pandas包。...我们也可以使用melt函数var_namevalue_name参数来指定列名。 11. Explode 假设数据集一个观测(行)包含一个要素多个条目,但您希望单独行中分析它们。...我们要创建一个,该显示“person”每个人得分: df['Person_point'] = df.lookup(df.index, df['Person']) df ? 14....Describe describe函数计算数字基本统计信息,这些包括计数、平均值、标准偏差、最小值最大值、中值、第一个第三个四位数。因此,它提供了dataframe统计摘要。 ?...例如,如果我们想将每个元素乘以一个数字,我们不需要也不应该使用applymap函数。在这种情况下,简单矢量化操作(例如df*4)要快得多。 然而,某些情况下,我们可能无法选择矢量化操作。

    5.7K30

    Python 金融编程第二版(二)

    在这方面最重要数据结构之一是数组。数组通常以行形式结构化其他(基本)相同数据类型对象。 暂时假设我们使用数字,尽管这个概念也可以推广到其他类型数据。...② 打开文件以读取二进制数据… ③ …并在b对象读取五个元素。 ④ 使用类型代码double创建一个array对象。 ⑤ 从文件读取两个元素。 ⑥ 类型代码差异导致“错误”数字。...③ 创建对象。 ④ ndarray对象转置。 重塑操作期间,ndarray对象元素总数保持不变。调整大小操作期间,此数字会更改,即它要么减少(“向下调整”),要么增加(“向上调整”)。...② 函数f应用于 Python float对象。 ③ 同一函数应用于ndarray对象,导致函数向量化逐个元素评估。 NumPy所做是简单函数f逐个元素应用于对象。...pandas最近几年已经成为一个强大工具,不仅提供了强大功能,还很好封装了来自其他软件包现有功能。结果是一个用户界面,使得数据分析,特别是金融分析,成为一项便捷高效任务。

    19210

    集 Python、C、R、Ruby 之所长,动态编程语言 Julia 1.0 正式发布

    Julia 程序通过 LLVM 为多个平台编译高效本地代码。 通用:它使用多分派(multiple dispatch)作为范例,使得表达许多面向对象函数式编程模式变得容易。...Julia 多分派非常适合定义数字和数组类型数据类型。 (可选)多样:Julia 具有丰富描述性数据类型,类型声明可用于阐明巩固程序。 可组合:Julia 包可以很好协同工作。... Julia 1.0 ,将广播扩展到自定义类型并在 GPU 其他矢量化硬件上实现高效优化计算很简单,为将来更高性能提升铺平了道路。...Julia 优化器很多方面远比下面列出来还要更聪明,但这些亮点仍值得一提。优化器现在可以通过函数调用传播常量,从而允许比以前更好消除无用代码和静态评估。...现在始终使用与声明相同语法调用参数类型构造函数,这消除了语言语法中比较模糊且令人困惑角落。 迭代协议已经完全重新设计,以便更容易实现多种迭代。 作用域规则(scope rule)已经简化。

    1.4K10

    Pandas 秘籍:6~11

    类似地,AB,HR是两个数据帧唯一出现。 即使我们指定fill_value参数情况下使用add方法,我们仍然缺少值。 这是因为我们输入数据从来没有行某些组合。...它将两个聚合函数summean每一个应用于每个,从而每组返回四个。 步骤 3 进一步进行,并使用字典将特定聚合映射到不同聚合函数。 请注意,size聚合函数返回每个组总行数。...分组后删除多重索引 不可避免,当使用groupby时,您可能会在或行或两者中都创建多重索引。 具有多重索引数据帧更加难以导航,并且有时列名称也令人困惑。...并非将ffill方法应用于整个数据帧,我们将其应用于President Trump 数据帧,其他没有丢失数据,但这不能保证所有抓取表在其他中都不会丢失数据。...夏季空中交通流量比一年其他任何时候都要多。 第 8 步,我们使用一长串方法对每个目标机场进行分组,并将meancount两个函数应用于距离

    34K10

    Pandas 秘籍:1~5

    通常,这些将从数据集中已有的先前列创建。 Pandas 有几种不同方法可以向数据帧添加。 准备 在此秘籍,我们通过使用赋值影片数据集中创建,然后使用drop方法删除。...这在第 3 步得到确认,第 3 步,结果(没有head方法)将返回数据,并且可以根据需要轻松将其作为附加到数据帧。axis等于1/index其他步骤将返回数据行。...您可以使用np.number或字符串number摘要包含整数浮点数。 从技术上讲,数据类型是层次结构一部,其中数字位于整数浮点上方。...这些布尔值通常存储序列或 NumPy ndarray,通常是通过将布尔条件应用于数据帧一个或多个创建。...该摘要序列用于将第十九十个百位存储为它们自己变量。 步骤 3 使用布尔索引来选择分布低十之一那些值。 序列和数据帧都具有通过plot方法直接绘图函数

    37.5K10

    《DAX进阶指南》-第6章 动态可视化

    绑定数据两种方式(度量值)都需要自己DAX方法实现。甚至可以将两者结合起来,以创建高度动态视觉效果。 本章,我们将介绍以下主题。 动态度量值。 动态标签坐标轴。 创建辅助表。...我们可以更进一步,将此选择与类似的方法相结合,以选择销售表中使用日期。这样,用户可以轻松财务视图(发票)、销售视图(订单)操作视图(交货)之间切换。...图6.8 辅助轴表 创建此计算表公式,定义了三个DAX变量,每个变量创建辅助表一部。以下是第一个变量。...本例,我们从三个输入表创建一个表。 ROW("Code", 1)是一个包含一行一个包含值 1 Code 表。...再次查看该部分开头数字,了解视觉对象DAX度量值结果。切片器筛选辅助表LabelType,而轴值用于图表y轴。 辅助表DAX度量值已成功实现动态y轴。

    5.6K50

    Scikit-Learn教程:棒球分析 (一)

    本教程,您将了解如何轻松从数据库加载数据sqlite3,如何使用pandas探索数据并提高数据质量matplotlib,以及如何使用Scikit-Learn包提取一些有效见解你数据。...接下来,您将win_bins使用apply()wins列上方法并传入assign_win_bins()函数创建。...Pandas通过将R除以G创建创建时,这非常简单R_per_game。 现在通过制作几个散点图来查看两个变量每一个如何与目标获胜相关联。...现在,将群集中标签作为添加到数据集中。还要将字符串“labels”添加到attributes列表,以供日后使用构建模型之前,需要将数据拆分为训练集测试集。...第二部,您将看到如何使用分类模型来预测哪些球员进入MLB名人堂。

    3.4K20

    数据库系统概念

    ,tuple):具体实体(属性,attribute):表字段信息关系模型三要素:关系运算集合:即关系代数,描述关系操作集合,这些操作应用于关系(表),其运算对象结果均为关系(表)关系数据结构:...指定(属性),运算,从关系R中选择若干属性组成关系并∪:R∪S,关系R或关系S或两者元素集合,一个元素并集中只出现一次,RS是同类型,对应属性集(字段列表)相同、属性次序相同、属性名可不同交...∩:R∩S,RS中都存在元素集合,一个元素交集中只出现一次,RS是同类型差-:R-S,R而不在S元素集合,R∩S=R-(R-S),RS是同类型笛卡尔积X:RXS,是R与S无条件连接.../函数使用:含有计算表达式,如substring 改变结果集列名:基于别名 as 使用选择若干元组:Select From 表名 Where 条件表达式,包括:比较:比较运算符,>...笛卡尔积X:广义连接,所有行进行组合,字段拼接,行交叉组合,一般没有使用意义条件连接θ:广义连接结果,施加条件,加以选择,留下符合要求元组自然连接⋈:参与连接表,必须具有相同属性某些公共属性上具有相同值元组外连接

    22032

    1.基础知识(1) --Matlab基础知识

    当你使用 MATLAB 时,您可以发出创建变量调用函数命令。例如,通过命令行输入这个语句创建一个名为 a 变量: a = 1 MATLAB 将变量 a 添加到工作区并在命令窗口中显示结果。...例如,列出 A 第 1 行第 2 元素: A(1:3,2) ans = 3×1 2 11 7 冒号(没有起始值 start 或结束值 end)是指定该维度所有元素。...subplot 函数前两个参数表示每一行每一数量。第三个参数指对应第几个图处于活动状态,即可编辑状态。例如, figure 窗口内 2×2 网格创建四幅图。...注释帮助其他人理解您代码,并且可以帮助您在以后看到这些代码时候能快速回忆起来。 MATLAB 中使用号 (%) 添加注释。 % 创建并绘制一个半径为 r 球体。...如果要将 monospace 字体应用于文本函数名,请点击 Live Editor 选项卡上 Text 选项按钮 M 。

    2.8K20

    Spring认证中国教育管理中心-Spring Data R2DBC框架教程三

    该findByLastname方法显示了对所有具有给定姓氏的人查询。 对Person投影firstnamelastname单个实体查询。...实体 ID 必须使用 Spring Data @Id注解进行注解。 当您数据库具有用于 ID 自动增量时,生成将其插入数据库后设置实体。...当实体是并且标识符值默认为其初始值时,Spring Data R2DBC 不会尝试插入标识符值。这适用0于原始类型,并且null如果标识符属性使用数字包装类型,例如Long....一个重要限制是,保存实体后,该实体不能再是。请注意,实体是否是实体是实体状态一部。对于自动增量,这会自动发生,因为 ID 由 Spring Data 使用 ID 值设置。...14.2.6.乐观锁定 该@Version注释 R2DBC 上下文中提供类似于 JPA 语法,并确保更新应用于具有匹配版本行。

    2.3K30
    领券