169 похожих чатов

Может ли кто-нибудь объяснить, почему происходит такое несоответствие чисел в

датафреймах?
Ситуация такая, что вычисление рангов и вообще представление чисел меняется, в зависимости оттого создан ли датафрейм в R или загружен из таблицы.
Думаю, что это связано с машинным представлением чисел, но выглядит это довольно неприятно и неконсистентно
r
library(dplyr)

df_ties <- data.frame(value = c(seq(1, 1.9, 0.1), seq(1.5, 1.95, 0.05)),
condition = c(rep('a', each = 10), rep('b', each = 10)))
df_ties %>%
mutate(rank = rank(value)) %>%
filter(value == 1.7)
#> value condition rank
#> 1 1.7 b 12

write.csv(df_ties, 'df.csv', row.names = F)
df_ties_csv <- read.csv('df.csv')

df_ties_csv %>%
mutate(rank = rank(value)) %>%
filter(value == 1.7)
#> value condition rank
#> 1 1.7 a 12.5
#> 2 1.7 b 12.5

Сама столкнулась с этим случайно, при попытке вычислять тест Манна-Уитни по формулам вручную и обратила внимание, что ранги вычисляются по-разному в R и вручную

2 ответов

30 просмотров

r df_ties <- data.frame(value = c(seq(1, 1.9, 0.1), seq(1.5, 1.95, 0.05)), condition = c(rep('a', each = 10), rep('b', each = 10))) library(tidyverse) df_ties %>% mutate(rank = rank(value)) %>% filter(near(value, 1.7)) #> value condition rank #> 1 1.7 a 13 #> 2 1.7 b 12 write.csv(df_ties, 'df.csv', row.names = F) df_ties_csv <- read.csv('df.csv') df_ties_csv %>% mutate(rank = rank(value)) %>% filter(near(value, 1.7)) #> value condition rank #> 1 1.7 a 12.5 #> 2 1.7 b 12.5 <sup>Created on 2022-06-17 by the [reprex package](https://reprex.tidyverse.org) (v2.0.1)</sup> так попробуйте, если filter нужен да, тема неоднократно поднималась/обсуждалась, в т.ч. и здесь в чате

Yuriy Saraykin
r df_ties <- data.frame(value = c(seq(1, 1.9, 0.1...

ранжирование чисел с плавающей запятой — то еще удовольствие. машинная точность, машинный шаг. загрубление может помочь — сядем в ограниченный набор битов в мантиссе

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта