如何解决如何从r中的组的所有值中减去最大值 数据
我目前有一个看起来像这样的数据框
tree cookie age
C1T1 A 113
C1T1 B 108
C1T1 C 97
C1T2 A 133
C1T2 B 110
C1T2 C 100
我想将每个树的最大年龄减去每个cookie的给定年龄(因此,从C1T1的113、108和97中减去113,从C1T2的133、110和100中减去133)。然后,我想将新值另存为同一数据框中的一列。这样看起来像:
tree cookie age new_age
C1T1 A 113 0
C1T1 B 108 5
C1T1 C 97 16
任何有关如何执行此操作的建议,将不胜感激!
解决方法
在按“树”分组后,我们可以利用mutate
来创建新的列,即取“年龄”的-
与每个年龄的{{1} 'age'的值来创建'new_age'
max
-输出
library(dplyr)
df1 <- df1 %>%
group_by(tree) %>%
mutate(new_age = max(age) - age)
或在df1
# A tibble: 6 x 4
# Groups: tree [2]
# tree cookie age new_age
# <chr> <chr> <int> <int>
#1 C1T1 A 113 0
#2 C1T1 B 108 5
#3 C1T1 C 97 16
#4 C1T2 A 133 0
#5 C1T2 B 110 23
#6 C1T2 C 100 33
中与base R
ave
数据
df1$new_age <- with(df1,ave(age,tree,FUN = max) - age)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。