Size: a a a

R (язык программирования)

2021 January 04

JL

Julia Laryushina in R (язык программирования)
R
тут скорее вопросы к ==
Да там много можно вопросов задать, на самом деле.
Особенно если весь код прочитать.
Суть-то в том, что у читателя возник именно этот.
источник

R

R in R (язык программирования)
это да, просто тут контекст такой косячный, что в другом мб поняли бы, что это такое :D
источник

AB

Alexey Burnakov in R (язык программирования)
Julia Laryushina
Не знаю, будет ли это аргументом, но вот из практики.
Питонисты читали код на R.
Просто особенности языка, я считаю
источник

AB

Alexey Burnakov in R (язык программирования)
Тот-же самое может быть: t(M)
источник

AB

Alexey Burnakov in R (язык программирования)
Что такое t?
источник

AB

Alexey Burnakov in R (язык программирования)
Сахар статистиков)))
источник

AB

Alexey Burnakov in R (язык программирования)
Live with this
источник

JL

Julia Laryushina in R (язык программирования)
R
это да, просто тут контекст такой косячный, что в другом мб поняли бы, что это такое :D
Справедливо!
источник

AB

Alexey Burnakov in R (язык программирования)
Alexey Burnakov
f <- function (dt = your.data.table) {... }
А вот это, внезапно, меня подивило. Все знают, что присваивание DT по ссылке. Но как бы не вложено в это определение, что справедливо утверждедение для разных пространств (environments). Удаляешь строки в dt, удалятся в корневом объекте
источник

АК

Артём Клевцов... in R (язык программирования)
Alexey Burnakov
А вот это, внезапно, меня подивило. Все знают, что присваивание DT по ссылке. Но как бы не вложено в это определение, что справедливо утверждедение для разных пространств (environments). Удаляешь строки в dt, удалятся в корневом объекте
> Удаляешь строки в dt, удалятся в корневом объекте
Вот это как раз сомнительно, т.к. при изменении количества строк происходит копирование объекта.
источник

AB

Alexey Burnakov in R (язык программирования)
Артём Клевцов
> Удаляешь строки в dt, удалятся в корневом объекте
Вот это как раз сомнительно, т.к. при изменении количества строк происходит копирование объекта.
Или добавление столбца
источник

R

R in R (язык программирования)
Alexey Burnakov
А вот это, внезапно, меня подивило. Все знают, что присваивание DT по ссылке. Но как бы не вложено в это определение, что справедливо утверждедение для разных пространств (environments). Удаляешь строки в dt, удалятся в корневом объекте
ничего себе сайд-эффекты
источник

IY

Igor Yakubovskiy in R (язык программирования)
aGricolaMZ
Использование переменных T и F, а также использование T вместо TRUE и F вместо FALSE
А что плохого ?)
источник

AB

Alexey Burnakov in R (язык программирования)
Артём Клевцов
> Удаляешь строки в dt, удалятся в корневом объекте
Вот это как раз сомнительно, т.к. при изменении количества строк происходит копирование объекта.
Наблюдал при добавлении столбца, про удаление строк сам уже не уверен) Так что может быть есть и эта тонкость
источник

IY

Igor Yakubovskiy in R (язык программирования)
Julia Laryushina
Не знаю, будет ли это аргументом, но вот из практики.
Питонисты читали код на R.
Если в R studio писать, то он же выделяет цветом T и F
Поэтому вопрос заранее  не оч умный )) я сам из питона
источник

АК

Артём Клевцов... in R (язык программирования)
Alexey Burnakov
Или добавление столбца
Это принципиальная разница. data.frame/data.table/list хранить в себе адрес (указатель) на список адресов/указателей на векторы. При изменении строк, изменяются все входящие в состав векторы и соответственно их адреса. При добавлении столбца (вектора в список) адрес самого списка не меняется.
источник

АК

Артём Клевцов... in R (язык программирования)
Alexey Burnakov
А вот это, внезапно, меня подивило. Все знают, что присваивание DT по ссылке. Но как бы не вложено в это определение, что справедливо утверждедение для разных пространств (environments). Удаляешь строки в dt, удалятся в корневом объекте
 x <- data.table::data.table(a = 1:3)
> data.table::address(x)
[1] "0x55a73d0fe200"
> y <- x
> data.table::address(y)
[1] "0x55a73d0fe200"
> x[, b := 1]
> data.table::address(x)
[1] "0x55a73d0fe200"
> data.table::address(y)
[1] "0x55a73d0fe200"
> x <- x[1:2]
> data.table::address(x)
[1] "0x55a73da3a020"
> data.table::address(y)
[1] "0x55a73d0fe200"
> x
  a b
1: 1 1
2: 2 1
> y
  a b
1: 1 1
2: 2 1
3: 3 1
источник

AB

Alexey Burnakov in R (язык программирования)
Да в курсе
источник

AB

Alexey Burnakov in R (язык программирования)
Но наследование по ссылке между environments точно такое же как в одном environment
источник

АК

Артём Клевцов... in R (язык программирования)
Alexey Burnakov
Да в курсе
Тогда почему пишешь про изменение объекта по ссылке при удалении строк?
источник