首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >根据data.frame中每个组的xy坐标计算坡度

根据data.frame中每个组的xy坐标计算坡度
EN

Stack Overflow用户
提问于 2018-09-02 22:28:03
回答 1查看 353关注 0票数 0

我有一个xy data.frame,以及其他factor,例如:

代码语言:javascript
运行
AI代码解释
复制
df <- data.frame(y = c(0.05, -0.03, -0.13, -0.24, 0.05, -0.03, -0.13, -0.24, 0.59, 1.97, 2.26, 1.89, 0.59, 1.97, 2.26, 1.89),
                      x = c(0, 1.58, 2, 4.58, 0, 1.58, 2, 4.58, 0, 1.58, 2, 4.58, 0, 1.58, 2, 4.58),
                      sex = c('F', 'F', 'F', 'F', 'M', 'M', 'M', 'M', 'F', 'F', 'F', 'F', 'M', 'M', 'M', 'M'),
                      group = c('B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'))

我正在寻找一个function (可能dplyr的用法最好),它将计算df中每个因子的每个级别的斜率( x的差值除以每对连续x点之间的差值df)。在本例中,我将有4组坡度:对于group = Asex = F,对于group = Asex = M,对于group = Bsex = F,对于group = Bsex = M

如果可能的话,如果解决方案是通用的,以便它应用于比本例中指定的更多的factors (条件是所有因子都属于factor类),那就更好了。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-02 22:43:28

为了使用dplyr找到斜率(根据您的定义),可能需要使用lag()函数。

leadlag函数:

查找向量中的“下一个”或“前一个”值。用于比较当前值之前或之后的值。

为了实现按因子变量分组,您可以首先使用dplyr::group_by()。这是可泛化的,可以接受一个或多个分组变量。

下面是一个可重复的示例,显示了每个组的计算。

代码语言:javascript
运行
AI代码解释
复制
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

df <- data.frame(y = c(0.05, -0.03, -0.13, -0.24, 0.05, -0.03, -0.13, -0.24, 0.59, 1.97, 2.26, 1.89, 0.59, 1.97, 2.26, 1.89),
                 x = c(0, 1.58, 2, 4.58, 0, 1.58, 2, 4.58, 0, 1.58, 2, 4.58, 0, 1.58, 2, 4.58),
                 sex = c('F', 'F', 'F', 'F', 'M', 'M', 'M', 'M', 'F', 'F', 'F', 'F', 'M', 'M', 'M', 'M'),
                 group = c('B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'))

df %>% 
  group_by(sex, group) %>% 
  mutate(slope = (y - lag(y)) / (x - lag(x)))
#> # A tibble: 16 x 5
#> # Groups:   sex, group [4]
#>          y     x sex   group    slope
#>      <dbl> <dbl> <fct> <fct>    <dbl>
#>  1  0.0500  0.   F     B      NA     
#>  2 -0.0300  1.58 F     B      -0.0506
#>  3 -0.130   2.00 F     B      -0.238 
#>  4 -0.240   4.58 F     B      -0.0426
#>  5  0.0500  0.   M     B      NA     
#>  6 -0.0300  1.58 M     B      -0.0506
#>  7 -0.130   2.00 M     B      -0.238 
#>  8 -0.240   4.58 M     B      -0.0426
#>  9  0.590   0.   F     A      NA     
#> 10  1.97    1.58 F     A       0.873 
#> 11  2.26    2.00 F     A       0.690 
#> 12  1.89    4.58 F     A      -0.143 
#> 13  0.590   0.   M     A      NA     
#> 14  1.97    1.58 M     A       0.873 
#> 15  2.26    2.00 M     A       0.690 
#> 16  1.89    4.58 M     A      -0.143

reprex package创建于2018-09-03 (v0.2.0)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52141438

复制
相关文章
React路由 及 React 路由中核心组件
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136454.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/07
1.5K0
如何在 React 中点击显示或隐藏另一个组件?
React 是一种流行的 JavaScript 库,用于构建动态用户界面。在一个 React 应用程序中,有时需要一个按钮或链接来触发显示或隐藏一个相关的组件。这种需求可以通过使用 React 状态管理和事件处理机制来实现。
网络技术联盟站
2023/06/07
5.3K0
React---路由组件传参
路由链接(携带参数):<Link to='/demo/test/tom/18'}>详情</Link>
半指温柔乐
2021/04/28
1.3K0
React向路由组件传递params参数
通过路由传递params参数,可以将动态数据传递给路由组件。这些参数通常用于根据不同的参数值呈现不同的内容或执行不同的操作。在React中,我们可以使用路由库(如react-router-dom)来定义带有参数的路由,并在组件中访问这些参数。
堕落飞鸟
2023/05/20
1K0
React篇(020)-如何在 React 中创建组件?
答案:有两种可行的方法来创建一个组件: 1. Function Components: 这是创建组件最简单的方式。这些是纯 JavaScript 函数,接受 props 对象作为第一个参数并返回 React 元素:
齐丶先丶森
2022/05/12
3K0
【Android 组件化】路由组件 ( 路由组件结构 )
在之前博客 【Android 组件化】使用 Gradle 实现组件化 ( 组件 / 集成模式下的 Library Module 开发 ) 的组件化项目中 , 可能涉及到跨 Module 的调用 , 如在 library1 模块中打开 library2 模块中的 Activity 界面 , 或调用其它 Module 中的功能 ;
韩曙亮
2023/03/29
4490
【Android 组件化】路由组件 ( 路由组件结构 )
React路由
现代的前端应用大多都是 SPA(单页应用程序),也就是只有一个 HTML 页面的应用程序。因为它的用户体验更好、对服务器的压力更小,所以更受欢迎。为了有效的使用单个页面来管理原来多页面的功能,前端路由应运而生。
用户10169043
2022/11/21
2K0
React路由
elementUI隐藏组件
但下面有一个横着的滚动条,怎么去掉呢?我们可以打开浏览器控制台找到对应的class
阿超
2022/08/16
1.5K0
elementUI隐藏组件
如何在受控表单组件上使用 React Hooks
React Hooks 是一个闪亮的新提案,将优化 90% 的 React 代码。 根据 Dan Abramov 的说法,Hooks 是 React 的未来。
三毛
2023/06/09
6700
如何在受控表单组件上使用 React Hooks
React路由
现代的前端应用大多都是SPA(单页应用程序),也就是只有一个HTML页面的应用程序。因为它的用户体验更好、对服务器的压力更小,所以更受欢迎。为了有效的使用单个页面来管理原来多页面的功能,前端路由应运而生
全栈程序员站长
2022/08/11
2.6K0
React路由
如何在CentOS 8 修改时区,同步时间
例如: cron 守护程序使用系统的时区执行 cron 作业,日志文件中的时间戳基于同一系统的时区。
冬冬i
2022/04/09
3.4K0
07-React Hooks(路由组件懒加载, Context上下文, 组件优化...)
Hook 是 React 16.8 的新增特性。它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。
彼岸舞
2022/08/24
1.3K0
如何在 CentOS 8 设置或者修改时区
使用正确的时区对于很多系统相关的任务和进程都是基本的必要的。例如:cron 守护程序使用系统时区来执行 cron 任务,并且日志文件中的时间戳也是基于系统时区的。
雪梦科技
2020/05/11
7.5K0
如何在 CentOS 8 设置或者修改时区
如何在 React 组件中优雅的实现依赖注入
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度,其中最常见的方式就是依赖注入(Dependency Injection,简称DI)。
ConardLi
2021/07/16
5.8K0
【Android 组件化】路由组件 ( 路由框架概述 )
路由框架 仅限于在 集成模式 下使用 , 组件模式下 , 路由框架不起任何作用 ;
韩曙亮
2023/03/29
5350
创建react路由
学习一点简单的前端还是有很多好处的,除了能让你头疼还能让你再也不想碰这sb东西,但是程序员这种傻缺,总是在喊
是小张啊喂
2021/08/10
6240
React前端路由
前端路由是一种在单页面应用中管理不同页面之间导航和渲染的机制。与传统的多页面应用不同,前端路由允许在同一个页面中切换不同的组件,而无需进行完整的页面刷新。
堕落飞鸟
2023/05/20
1.7K0
如何在 Debian 10 设置或者修改时区
使用正确的时区对于很多系统相关的任务和进程都是基本的必要的。例如:cron 守护程序使用系统时区来执行 cron 任务,并且日志文件中的时间戳也是基于系统时区的。
雪梦科技
2020/05/11
12.7K0
如何在 Debian 10 设置或者修改时区
创建react路由
学习一点简单的前端还是有很多好处的,除了能让你头疼还能让你再也不想碰这sb东西,但是程序员这种傻缺,总是在喊
是小张啊喂
2021/05/25
7010
React路由学习
1.安装react-router-dom $ npm i react-router-dom --save 2.在页面进行引入 import {BrowserRouter as Router,Route,Link} from 'react-router-dom' 3.编写两个无状态的路由组件 // 声明路由组件 一个func 相当于是一个路由组件  // 这里是无状态路由的写法 实际工作中会把路由组件单独的写成一个js来进行引入  function Index (){      return <h2>Jspa
biaoblog.cn 个人博客
2022/08/11
7970

相似问题

路由更改时,未路由的React组件不会更新

121

React :组件将在路由更改时重新挂载

128

如何在更改React路由时隐藏子组件

12

React路由器-路由重呈现组件在路由更改时

30

react路由器在路由更改时不渲染组件

222
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档