从data.frame中每组的xy坐标计算坡度

从data.frame中每组的xy坐标计算坡度,r,dataframe,dplyr,R,Dataframe,Dplyr,我有一个xydata.frame,以及其他因子,例如: 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,

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

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为了使用
dplyr
找到斜率(根据您的定义),
lag()
函数可能会有用

超前
滞后
功能:

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

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

下面是一个可复制的示例,显示了各组的计算结果

库(dplyr)
#> 
#>正在附加包:“dplyr”
#>以下对象已从“package:stats”屏蔽:
#> 
#>滤波器,滞后
#>以下对象已从“package:base”屏蔽:
#> 
#>相交、setdiff、setequal、并集
df%
按(性别、组别)分组%>%
突变(斜率=(y-滞后(y))/(x-滞后(x)))
#>#tibble:16 x 5
#>#群体:性别,群体[4]
#>y x性别组斜率
#>             
#>  1  0.0500  0.   F B NA
#>2-0.0300 1.58华氏度-0.0506华氏度
#>3-0.130 2.00华氏度-0.238华氏度
#>4-0.240 4.58华氏度-0.0426华氏度
#>  5  0.0500  0.   M B NA
#>6-0.0300 1.58米B-0.0506
#>7-0.130 2.00米B-0.238
#>8-0.240 4.58毫巴-0.0426毫巴
#>  9  0.590   0.   法娜
#>10 1.97 1.58华氏度0.873度
#>11 2.26 2.00华氏0.690度
#>12 1.89 4.58华氏度-0.143
#> 13  0.590   0.   玛娜
#>14 1.97 1.58 M A 0.873
#>15 2.26 2.00 M A 0.690
#>16 1.89 4.58毫安-0.143毫安

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

为了使用
dplyr
查找坡度(根据您的定义),
lag()
函数可能有用

超前
滞后
功能:

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

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

下面是一个可复制的示例,显示了各组的计算结果

库(dplyr)
#> 
#>正在附加包:“dplyr”
#>以下对象已从“package:stats”屏蔽:
#> 
#>滤波器,滞后
#>以下对象已从“package:base”屏蔽:
#> 
#>相交、setdiff、setequal、并集
df%
按(性别、组别)分组%>%
突变(斜率=(y-滞后(y))/(x-滞后(x)))
#>#tibble:16 x 5
#>#群体:性别,群体[4]
#>y x性别组斜率
#>             
#>  1  0.0500  0.   F B NA
#>2-0.0300 1.58华氏度-0.0506华氏度
#>3-0.130 2.00华氏度-0.238华氏度
#>4-0.240 4.58华氏度-0.0426华氏度
#>  5  0.0500  0.   M B NA
#>6-0.0300 1.58米B-0.0506
#>7-0.130 2.00米B-0.238
#>8-0.240 4.58毫巴-0.0426毫巴
#>  9  0.590   0.   法娜
#>10 1.97 1.58华氏度0.873度
#>11 2.26 2.00华氏0.690度
#>12 1.89 4.58华氏度-0.143
#> 13  0.590   0.   玛娜
#>14 1.97 1.58 M A 0.873
#>15 2.26 2.00 M A 0.690
#>16 1.89 4.58毫安-0.143毫安
由(v0.2.0)于2018年9月3日创建