R-有条件的替换

格格维扎德

我想在满足条件时替换小标题中的值。

Data <- tibble(a = 1:5,
b = c("a","b","a","a","a"), 
c = c("z","y","x","z","z"), 
d = c("m","n","m","m","m"),
e = c(1,3,4,7,2))

  a b c d e
1 1 a z m 1
2 2 b y n 3
3 3 a x m 4
4 4 a z m 7
5 5 a z m 2

我想基于列a中的最大值替换包含列b,c和d重复组合的行。这里的第1、4和5行在b,c和d列中都包含“ a”,“ z”和“ m”,因此此示例将输出如下:

  a b c d e
1 5 a z m 2
2 2 b y n 3
3 3 a x m 4
4 5 a z m 2
5 5 a z m 2
r2evans

这是一个想法,它针对修订后的需求进行了更新,该需求e已更新为具有maxime的行中的值a

tidyverse

library(dplyr)
Data %>%
  group_by(b,c,d) %>%
  mutate(e = e[which.max(a)], a = max(a)) %>% 
  ungroup()
# # A tibble: 5 x 5
#       a b     c     d         e
#   <int> <chr> <chr> <chr> <dbl>
# 1     5 a     z     m         2
# 2     2 b     y     n         3
# 3     3 a     x     m         4
# 4     5 a     z     m         2
# 5     5 a     z     m         2

计算的顺序ea你:是的,当然,关键的max(a)第一,那么e就不会知道这原来的值a是最大。

数据表

library(data.table)
cols <- c("a", "e")
as.data.table(Data)[, c("e", "a") := .(e[which.max(a)], max(a)), by = .(b, c, d)][]
#    a b c d e
# 1: 5 a z m 2
# 2: 2 b y n 3
# 3: 3 a x m 4
# 4: 5 a z m 2
# 5: 5 a z m 2

(尾随[]只是一个次要的功能/错误data.table……仅出于美观目的而已,没有它的数据是相同的。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有条件的RenderUI R闪亮

来自分类Dev

在R中有条件的循环

来自分类Dev

有条件的分组加入R

来自分类Dev

R:有条件的递增柜台

来自分类Dev

使用R有条件地替换数据框中的列值

来自分类Dev

R-如何有条件地替换缺少的字符串

来自分类Dev

有条件地用矩阵值替换data.frame列。R中的VLOOKUP

来自分类Dev

有条件地替换数据帧R中的字符元素

来自分类Dev

有条件地将一列替换为另一列(R)

来自分类Dev

R根据另一列中的文本有条件地替换NA

来自分类Dev

r:有条件地替换列子集中的值

来自分类Dev

使用R dyplyr有条件地重新编码/替换变量?

来自分类Dev

R Dplyr:如何有条件地替换与列表中的项目匹配的向量中的项目

来自分类Dev

有条件地替换data.table R中整个组的值

来自分类Dev

R-当列名相似时有条件地替换值

来自分类Dev

R:有条件地替换数据框中几列中的值

来自分类Dev

R-如何有条件地替换缺少的字符串

来自分类Dev

使用R有条件地替换数据框中的列值

来自分类Dev

有条件地替换多个数据框的值R

来自分类Dev

R:根据列前缀和后缀有条件地替换值

来自分类Dev

有条件地将值添加到新列并替换R中的条件列中的值

来自分类Dev

R-有条件地用另一个数据框中的值替换值

来自分类常见问题

带有条件的子串R

来自分类Dev

有条件地调用R中的特定列

来自分类Dev

有条件地删除R中的行

来自分类Dev

R子集带有条件语句的列表

来自分类Dev

R有条件地更改字符串

来自分类Dev

有条件地在R中创建列

来自分类Dev

有条件的序列数填写R