繁体   English   中英

比较一列中的两行 R

Compare two rows in one column R

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想比较 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

谢谢!

2 个回复

如果每组有两个以上的元素,则进行分组,并使用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  

一个选项也是arrange ,然后使用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")

我们可以使用以min为条件value ifelse语句来mutate new_var

library(dplyr)
df %>% 
  group_by(id) %>% 
  mutate(new_var = ifelse(value == min(value), "lower", NA_character_)) %>%
  ungroup()
    value    id new_var
  <int> <int> <chr>  
1     1     1 lower  
2     2     1 NA     
3     5     2 NA     
4     3     2 lower  
5    10     3 lower  
6    11     3 NA     
7     2     4 NA     
8     1     4 lower  
2 如何比较R中的两行日期并转换为一行

我有一个数据集,其中包含相同名称的多行日期信息(间隔),应该对其进行比较并最终转换为一行。 我想实现以下目标: 如果间隔重叠,则保留一行,其中包含四个值中最早和最晚的日期如果间隔不重叠,但间隔之间的时间小于或等于 60 天,则执行相同的操作:因此,保留四个值中最早和最晚日期的一行如果间隔不重叠,并且 ...

3 比较两个数据集以查找 r 中的一个数据集中不存在的行 [重复]

这个问题在这里已经有了答案: 查找数据帧的补码(反连接) 7 个答案 1 年前关闭。 我有两个数据集,数据集中的 Id 是无序的,并且有多个值存在于一个数据集中但不存在于另一个数据集中。 最后我想要的是 csv 文件,其中包含两个数据集列的非通用 ID。 ...

2019-11-21 13:28:53 1 46   r
5 R跨行比较列

我有以下问题对我很有挑战性,因为我或多或少是R的初学者。 我有一个类似的data.frame,所以: 我想要做的是将a列中的第1个值与第2个值进行比较。 如果它们相同,则在b栏中检查g2是否跟随g1 。 数据按日期排序,我基本上想要找到g2跟随g1的出现次数,而a列中的相应 ...

2015-10-15 10:51:58 3 484   r/ compare
6 比较R中的两行dataframe

我有一个数据集,我想在其中查找并显示包含任何无效数据的行,例如速率值不在 MinCI 和 MaxCI 的范围内,MinCI 大于 MaxCI 等。如果它们存在,请更改 MinCI 和 MaxCI 值在这些行中进入 NA。 因此,在第 3 行和第 5 行中,MinCI 大于 MaxCI,因此我们希望 ...

7 比较 R 中的两个列对

我有一个像下面这样的数据框。 我想从前两列开始成对比较列。 对于列中的每一行,如果值相同,我想在新列Status添加 0,如果值不同,我想要 1。结果应如下所示: 我可以使用 for 循环来做到这一点,但是有没有更好的方法来解决这个问题? 我的 For 循环来解决这个问题: ...

2021-10-21 20:25:31 3 40   r
8 根据r中的列值将两行合并为一

请忽略此部分的外观@在这里开始 我正在尝试合并以下两行: 像这样排成一排: 这是用于创建数据集的代码: 如果“ Environment列具有相同的值,则在这种情况下, PRODUCTION将两行合并并返回“是”。 我没有包含代码,因为我尝试的所有代码均无法 ...

2017-07-16 20:16:48 6 2918   r
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM