Size: a a a

R language and Statistical data analysis

2020 May 05

IS

Ivan Struzhkov in R language and Statistical data analysis
как там группировкой управлять
источник

AS

Alexey Seleznev in R language and Statistical data analysis
а блин, я что то не правильно вопрос понял, я что то не про группы а про столбцы подумал, пардон
источник

AS

Alexey Seleznev in R language and Statistical data analysis
так а просто внутри использовать mean(if_else ...
источник

IS

Ivan Struzhkov in R language and Statistical data analysis
так все равно же будет по группе выполняться
источник

IS

Ivan Struzhkov in R language and Statistical data analysis
по идее
источник

IS

Ivan Struzhkov in R language and Statistical data analysis
или уже без группировки как то писать агрегат - но способ явно не масштабируемый
источник

IS

Ivan Struzhkov in R language and Statistical data analysis
в практике у меня самое быстрое решение это цепочка джоинов, но это все тоже масштабируется слабо
источник
2020 May 06

g

greengrocery in R language and Statistical data analysis
Ivan Struzhkov
Всем привет! Есть ли способ в связке
df %>%  group_by(foo1,foo2,foo3)  %>% summaraise(mean=mean(xxx), median=median(xxx))   
посчитать среднее для объявленной группировки, а медиану только для группировки foo1?

У меня без костылей не получилось - может есть нативный способ
можно через две группировки и mutate вместо summarise  после первой из них:
df %>%  
 group_by(foo1) %>%
 mutate(median = median(xxx)) %>%
 group_by(foo1, foo2, foo3) %>%
 summaraise(mean = mean(xxx), median = unique(median))
источник

IS

Ivan Struzhkov in R language and Statistical data analysis
greengrocery
можно через две группировки и mutate вместо summarise  после первой из них:
df %>%  
 group_by(foo1) %>%
 mutate(median = median(xxx)) %>%
 group_by(foo1, foo2, foo3) %>%
 summaraise(mean = mean(xxx), median = unique(median))
Хорошая мысль!
источник

AB

Alexey Burnakov in R language and Statistical data analysis
Привет всем. Не знаете, есть способ открыть большущий файл, который размером с оперативку? Попробовал как обычно fread (matched_dt <- fread('matched_dt.csv', verbose = T, nrows = 100, select = 1)), получил такое: Error in fread("matched_dt.csv", verbose = T, nrows = 100, select = 1) :
 Opened 32.05GB (34411926381 bytes) file ok but could not memory map it. This is a 64bit process. There is probably not enough contiguous virtual memory available.
источник

AB

Alexey Burnakov in R language and Statistical data analysis
Попробовал readLines - крэш произошел.
источник

AB

Alexey Burnakov in R language and Statistical data analysis
Alexey Burnakov
Попробовал readLines - крэш произошел.
получается через readLines(n = 100) - с указанием кол-ва. Попробую так)
источник

A

Alex in R language and Statistical data analysis
Добрый день!
Помогите, пожалуйста, переписать код для data.table (говорят, что должно помочь со скорость обработки). Столкнулся с проблемой, что для 600к строк больше часа не отдает никакой результат.

Есть набор данных, которых нужно сгруппировать по experimentVariation и clientid, с подсчетом суммы по полю rev (доход) и количеству по полям purchase (количество заказов, но представлено transaction id), reg и т.д.

После группировки нужно отфильтровать данные по количеству заказов (не больше 1).
И опять сгруппировать данные по experimentVariation и подсчитать суммы по полям и другие калькуляции.

Пробовал с ограниченным количеством строк набора данных через head(data, 1000), чтобы проверить, в правильном направлении составил запрос - заняло пару минут. Вроде бы все правильно. Сейчас работаю с 600к строками, уже больше часа ни видно никакого ответа. Непонятно, продолжается ли калькуляция и когда будет конец операции.
источник

A

Alex in R language and Statistical data analysis
Вот у меня такой запрос:

dataByUser <- data %>%
 
 group_by(experimentVariant, clientid) %>%
 summarize(users = n_distinct(clientid,  na.rm = TRUE),
           registrations = n_distinct(reg),
           transactions = n_distinct(purchase, na.rm = TRUE),
           revenue = sum (rev, na.rm = TRUE)
 ) %>%
 filter(transactions < "2") %>%
 group_by(experimentVariant) %>%
 summarize(users = sum(users),
           registrations = sum(registrations),
           transactions = sum(transactions),
           revenue = sum(revenue),
           arpu = sum(revenue) / sum(users))

Помогите 🙂
источник

i

isya in R language and Statistical data analysis
На 600к не должно так долго отрабатывать. Полагаю, что вы после первого саммарайза группировку не убрали. Попробуйте поставить перед фильтром ungroup(). И не нужно переводить значение в строку, просто < 2
источник

A

Alex in R language and Statistical data analysis
Вроде бы разобрался. Загружая данные из csv через readr за пару секунд результат получил
источник

A

Alex in R language and Statistical data analysis
До этого использовал стандартный import > dataset (csv) и пробовал vroom (vroom не все данные подгружал почему-то)
источник

A

Alexander in R language and Statistical data analysis
источник

S

Stan in R language and Statistical data analysis
О! А Фортраныч где?)
источник

AM

Aleksei Morozov in R language and Statistical data analysis
Добрый день,
pivot_longer удаляет время из столбца формата dmy_hms. Формат столбца остаётся тем же, но время становится 00:00:00. Никто не сталкивался с такой проблемой?
dat %>% pivot_longer(-Time, names_to = "Name", values_to = "Value")
## # A tibble: 3,821,291 x 3
##    Time                Param             Value
##    <dttm>              <chr>             <dbl>
##  1 2019-05-01 00:00:00 BK1__T20__C    893.    
##  2 2019-05-01 00:00:00 BK1__T21__C    923.    
##  3 2019-05-01 00:00:00 BK1__T22__C    818.    
##  4 2019-05-01 00:00:00 BK1__T23__C    816.    
##  5 2019-05-01 00:00:00 BK1__T24__C    259.
источник