Rのwith()関数とwithin()関数について – 知っておくべきこと全て!

皆さん、こんにちは!この記事では、Rプログラミングの関連性が高いですが異なる2つの機能、R with() 関数と within() 関数について詳しく見ていきます。それでは始めましょう!! 🙂


1. Rのwith()関数を使って

私たちはしばしば特定の操作を実行するために、カスタマイズされた/ユーザー定義の関数を作成する必要があると感じる状況に遭遇します。Rのwith()関数を使用すると、Rの式に対して操作を行い、その関数の呼び出しのプロセスを一度に行うことができます!

それはwith()関数が、関数内で評価されるRの式を引数として渡すことができるようにすることを可能にします。これはデータフレームにのみ適用されます。そのため、Rの式の評価結果は、引数として渡されたデータフレームに基づいて行われます。

構文:

with(data-frame, R expression)

例:
この本はとても面白かったです。
この本は非常におもしろかったです。

rm(list = ls())

Num <- c(100,100,100,100,100)
Cost <- c(1200,1300,1400,1500,1600)

data_A <- data.frame(Num,Cost,stringsAsFactors = FALSE)

with(data_A, Num*Cost)
with(data_A, Cost/Num)

上記の例では、with()関数でデータフレームdata_Aの式「Num*Cost」を直接計算しました。

その後、私たちは関数内でも式「Cost/Num」を計算しました。 (Sono ato, watashitachi wa kankei nai demo shiki “Cost/Num” o keisan shimashita.)

これらの2つの文を連続して配置する理由は、with()関数が元のデータフレームをいかなる状態でも変更しないことを強調するためです。それはデータフレームの列に関連付けられたすべての値に対して個別に出力を提供します。

出力:

> with(data_A, Num*Cost)
[1] 120000 130000 140000 150000 160000
> with(data_A, Cost/Num)
[1] 12 13 14 15 16

2. Rのwithin()関数

with()関数について読んだ後は、それの双子に焦点を当てましょう!ははは!冗談だよ!関数の名前は似ているけれど、機能は異なります。

Rのwithin()関数は、内部で式の結果を計算しますが、わずかに異なる点があります。これにより、データフレームのコピーを作成し、Rの式の結果を保存するための列を追加することができます。

構文:

文法構造

within(data frame, new-column <- R expression)

例:
英語を話すことが得意です。

rm(list = ls())

Num <- c(100,100,100,100,100)
Cost <- c(1200,1300,1400,1500,1600)

data_A <- data.frame(Num,Cost,stringsAsFactors = FALSE)

within(data_A, Product <- Num*Cost)
within(data_A, Q <- Cost/Num)

ここでは、with()関数に使用した表現の評価を行いましたが、新しい列を作成してその結果を保存しました。

> within(data_A, Product <- Num*Cost)
  Num Cost Product
1 100 1200  120000
2 100 1300  130000
3 100 1400  140000
4 100 1500  150000
5 100 1600  160000
> within(data_A, Q <- Cost/Num)
  Num Cost  Q
1 100 1200 12
2 100 1300 13
3 100 1400 14
4 100 1500 15
5 100 1600 16

結論

これにより、このトピックは終了しました。もし質問があれば、下にコメントして自由に書いてください。

Rに関連するより多くの投稿をお楽しみにしてください。それまで、Happy Learning!! 🙂

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds