R програм буюу R хэлний монгол хэл дээрх сургалтын хэрэглэгдэхүүн цахим орчинд төдийлэн хангалттай бус байсаар байгаа билээ. Энэ талаар Py4Econ Official суваг анхаарч цуврал видео хичээл бэлтгэн YouTube дээр байрлуулж байгаа нь сайшаалтай хэрэг юм. Гэвч уг цуврал хичээлд зарим алдаа дутагдал байгааг олж анзаарлаа. R хэлийг гүн гүнзгий судалсан миний хувьд уг алдаа дутагдалд залруулга өгөх нь мэргэжлийн үүрэг хариуцлага гэж ухамсарлаж байна.

R-ийн үндэс хичээл 2: Вектор ба R дээрх бусад үндсэн үйлдлүүд

Зэрэгт дэвшүүлэх ба язгуур гаргах

3 минут 10 секундээс хойших хэсэгт 4^1/2 тушаалыг язгуур гаргах гэж тайлбарлажээ. Гэвч энэ нь үйлдлийн дараалал талаас авч үзвэл 4-ийг 1 зэрэгт дэвшүүлсэний дараа 2-т хувааж буй хэрэг юм.

R хэлний операторуудын ажиллах дэс дарааг нарийн тодорхой бичсэн тусламжийн хуудас байдаг бөгөөд түүнийг ??precedence тушаалаар хайж олох боломжтой. Мөн квадрат язгуур гаргах функцийн талаар дурдсан боловч функцээ тэрхэн зуурт санасангүй. Үүнд sqrt() функц ашигладаг. Эцэст нь квадрат язгуур олох гурван өөр тушаалыг ажиллах хурдаар нь харьцуулах код өгье.

rbenchmark::benchmark(
  "**" = 4 ** 0.5, "^" = 4 ^ 0.5, "sqrt" = sqrt(4),
  replications = 1e4, columns = c("test", "elapsed", "relative")
)

Дээрх бенчмарк туршилтаар дараах үр дүн гарав.

  test elapsed relative
1   **   0.023    1.211
2    ^   0.021    1.105
3 sqrt   0.019    1.000

Эндээс харвал квадрат язгуур гаргахад sqrt() функц ашиглавал зүйтэй ажээ.

Вектор байдалтай объект бас утга өөрчлөх функцийг юу гэв

7 минут 15 секундээс хойших хэсэгт вектор үүсгэснээ сүүлдээ функц гэж хэлээд явчихлаа. Мөн векторын элементүүдэд нэр оноож буй тушаалаа "нийлүүлээд" гэх мэтчилэн хэлж буй нь учир дутагдалтай юм.

нас <- c(11, 22, 33, 44)
нэр <- c("Батаа", "Дулмаа", "Пунцаг", "Дондог")
names(нас) <- нэр
print(нас)

# үр дүн
 Батаа Дулмаа Пунцаг Дондог 
    11     22     33     44 

Угтаа names() ба names() <- хоёр тусдаа функц бөгөөд сүүлийнх нь утга өөрчлөх функц юм. Утга өөрчлөх функцийг зарлах байдал нь ч бас онцлогтой. Мөн энд кирилл үсэг чөлөөтэй ашиглаж байгааг харвал Mac эсвэл ямар нэг Linux тархац ашиглаж буй бололтой.

Үүнээс гадна тайлбарлалгүй, гайхаж байгаад устгаж орхисон dim() бол вектор бус харин матриц, датафрейм болон массив дээр ажиллаж хэмжээсийг нь олж буцаадаг функц юм.

Векторын элемент уруу хандахыг вектор үүсгэхтэй хольж хутгав

12 минут 22 секундээс хойших хэсэгт векторын элемент уруу хандах тушаалыг вектор үүсгэх нэг арга зам гэж буруу тайлбарлав.

40 дүгээр мөрд үүсгэсэн x векторынхоо эхний арван элементийг 48 дугаар мөр дээр ахин ашиглаж байгаа буюу ерөөсөө [ ] хаалтыг объектын элемент уруу хандахад ашигладаг билээ.

Бусад

Вектор, матриц болон датафрейм зэргийг багана байдлаар авч залгаж нэгтгэх cbind() функцийн тайлбар бүрхэг үлдсэн, листийн элементийг категори гэсэн зэрэг дутагдал ажиглагдлаа.

Төгсгөлийн оронд

Уг шүүмжээ одоогийн байдлаар үүгээр өндөрлүүлье. Цаашид цувралын дараа дараагийн хичээлд өгөх шүүмжээ энэхүү бичвэртээ нэмж оруулах болно.