在 R 中对数据分组后使用重新缩放函数
Using rescale function after grouping data in R
我有一个数据框,用于测量具有唯一 ID 的多个对象的垂直移动。我想使用 rescale 包将 X、Y 坐标从像素重新缩放为厘米。每个物体的最小值为 0 厘米,最大值为 12.5 厘米,但像素长度都不同,因为有些物体更近,有些更远。我想按唯一 ID 对我的数据进行分组,然后在 0 到 12.5 厘米之间重新缩放。这是我使用的代码:
Data <- Data %>%
group_by(ID) %>%
rescale(Data$Y, to = c(0, 12.5), from = range(Data$Y, na.rm = TRUE, finite = TRUE))
我认为我的数据分组有误,因为我不断收到以下错误:
Error in UseMethod("rescale") :
no applicable method for 'rescale' applied to an object of class "c('grouped_df', 'tbl_df', 'tbl', 'data.frame')"
关于如何格式化这个有什么建议吗?
假设 rescale
来自 scales
,在 group_by
之后,rescale
它在 mutate
内,只需指定不带 Data$
。使用 Data$
将提取整列而不是每个组的值
library(dplyr)
library(scales)
Data %>%
group_by(ID) %>%
mutate(Y = rescale(Y, to = c(0, 12.5),
from = range(Y, na.rm = TRUE, finite = TRUE)))
使用 mtcars
的可重现示例
data(mtcars)
mtcars %>%
group_by(cyl) %>%
mutate(mpg = rescale(mpg, to = c(0, 12.5),
from = range(mpg, na.rm = TRUE, finite = TRUE)))
我有一个数据框,用于测量具有唯一 ID 的多个对象的垂直移动。我想使用 rescale 包将 X、Y 坐标从像素重新缩放为厘米。每个物体的最小值为 0 厘米,最大值为 12.5 厘米,但像素长度都不同,因为有些物体更近,有些更远。我想按唯一 ID 对我的数据进行分组,然后在 0 到 12.5 厘米之间重新缩放。这是我使用的代码:
Data <- Data %>%
group_by(ID) %>%
rescale(Data$Y, to = c(0, 12.5), from = range(Data$Y, na.rm = TRUE, finite = TRUE))
我认为我的数据分组有误,因为我不断收到以下错误:
Error in UseMethod("rescale") :
no applicable method for 'rescale' applied to an object of class "c('grouped_df', 'tbl_df', 'tbl', 'data.frame')"
关于如何格式化这个有什么建议吗?
假设 rescale
来自 scales
,在 group_by
之后,rescale
它在 mutate
内,只需指定不带 Data$
。使用 Data$
将提取整列而不是每个组的值
library(dplyr)
library(scales)
Data %>%
group_by(ID) %>%
mutate(Y = rescale(Y, to = c(0, 12.5),
from = range(Y, na.rm = TRUE, finite = TRUE)))
使用 mtcars
data(mtcars)
mtcars %>%
group_by(cyl) %>%
mutate(mpg = rescale(mpg, to = c(0, 12.5),
from = range(mpg, na.rm = TRUE, finite = TRUE)))