gpt4 book ai didi

r - 比较一列中的两行 R

转载 作者:行者123 更新时间:2023-12-02 01:47:43 25 4
gpt4 key购买 nike

我想比较 R 中两行中一列中列出的值。这些行通过 ID 变量进行标识。我想生成一个新变量,告诉我两个值中哪个值低于另一个值。这是一个例子:

value   id   new_var
1 1 lower
2 1 higher
5 2 higher
3 2 lower
10 3 lower
11 3 higher
2 4 lower
1 4 higher

谢谢!

最佳答案

如果每组有两个以上元素,请进行分组,并使用 ifelse/case_when 创建条件来创建“new_var”

library(dplyr)
df1 %>%
group_by(id) %>%
mutate(new_var = case_when(value == max(value) ~ "higher",
TRUE ~ "lower")) %>%
ungroup
# A tibble: 8 × 3
value id new_var
<int> <int> <chr>
1 1 1 lower
2 2 1 higher
3 5 2 higher
4 3 2 lower
5 10 3 lower
6 11 3 higher
7 2 4 higher
8 1 4 lower

还有一种选择是排列,然后按照rep的顺序创建一个新列(假设每个id有2个元素)

df1 %>%
arrange(id, value) %>%
mutate(new_var = rep(c("lower", "higher"), length.out = n()))

数据

df1 <- structure(list(value = c(1L, 2L, 5L, 3L, 10L, 11L, 2L, 1L), id = c(1L, 
1L, 2L, 2L, 3L, 3L, 4L, 4L)), row.names = c(NA, -8L), class = "data.frame")

关于r - 比较一列中的两行 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70702083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com