r 中具有匹配条件的子集值

amisos55

我在这里有一个类似的问题但这个问题略有不同。

我想根据切分标准在另一列中返回具有匹配条件的值。如果变量中的剪切分数不可用,我想为第一次和第二次剪切获取最接近的较大值,并为第三次剪切获取最接近的最小值。这是数据集的快照:

ids <- c(1,2,3,4,5,6,7,8,9,10)
scores.a <- c(512,531,541,555,562,565,570,572,573,588)
scores.b <- c(12,13,14,15,16,17,18,19,20,21)
data <- data.frame(ids, scores.a, scores.b)
> data
   ids scores.a scores.b
1    1      512       12
2    2      531       13
3    3      541       14
4    4      555       15
5    5      562       16
6    6      565       17
7    7      570       18
8    8      572       19
9    9      573       20
10  10      588       21

cuts <- c(531, 560, 571)

我想获取score.b与第一个切割分数相对应的值,即13. 然后,抓取第二个cut( 560)score对应的score.b值,但它不在score.a中,所以我想获取score.a值562(最接近larger560),对应的值为16. 最后,对于第三个切割分数 ( 571),我想得到 18,这是与第三个切割分数最接近的smaller值 ( 570)的对应值

这是我想得到的。

       scores.b
cut.1  13
cut.2  16
cut.3  18

有什么想法吗?谢谢

杰耶克
data %>% 
   mutate(cts = Hmisc::cut2(scores.a, cuts = cuts)) %>% 
   group_by(cts) %>% 
   summarise( mn = min(scores.b),
              mx = max(scores.b)) %>% 
   slice(-c(1,4)) %>% unlist() %>% .[c(3,4,6)] %>% 
   data.frame() %>% 
   magrittr::set_colnames("scores.b") %>% 
   magrittr::set_rownames(c("cut.1", "cut.2", "cut.3"))

      scores.b
cut.1       13
cut.2       16
cut.3       18

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在r中返回具有匹配条件的值

具有多个条件的R子集

R中的子集似乎不起作用:具有要作为子集的特定值的行的值

子集变量匹配R中的值对

R:有条件地应用于具有排除值的子集

R:将具有一个匹配观察值的个体的所有观察值归为子集

对于R中具有子集的循环

R中具有硬编码值的数字匹配/提取

在 R 中对具有特定条件的数据帧进行子集

R中具有时间条件的子集数据集

根据R中另一数据框中的条件值来匹配/子集一个数据框

如何对R中相同的两列具有不同值的数据框进行子集

您如何子集一个在R中具有多个重复值的数据框

如何将R中具有特定差异的值子集化?

按列在R中具有等效值的子集数据

R:通过匹配A列中的值进行子集

仅使用整洁的条件,用R中的列名有条件地替换行的子集的值

R中具有数组的琐碎子集选择

R中基于条件的子集

如何根据满足特定条件的所有行过滤具有匹配列值的多行?[R]

在 R 中的数据帧中匹配多个具有设定值的字符串

如何在R的另一列中仅对具有多个不同值的行进行子集化?

(R, Data.Tables):基于具有动态分配的列名的列中的逻辑值对行进行子集

R中具有多个条件的Countif

具有最大条件的 R 中的样本

如何通过匹配信息查找值并在 r 中创建具有相同数据的新变量?

在R中给定行“匹配”的情况下创建具有平均列值的表

使用 group_by 对除具有特定条件的行以外的所有行进行子集化,以获取 r 中不同数量的变量

在R中具有某些条件的情况下为循环中的变量分配值