R中`subset`函數的邏輯參數究竟是什麼?

rubengavidia0x

我正在通過《Learning R - Richard Cotton》第 5 章:列表和數據框這本書學習 R,但我不明白這個示例給出的內容,我有這個數據框和以下腳本:

(a_data_frame <- data.frame(
x = letters[1:5],
y = rnorm(5),
z = runif(5) > 0.5
))

  x          y     z
1 a  0.6395739 FALSE
2 b -1.1645383 FALSE
3 c -1.3616093 FALSE
4 d  0.5658254 FALSE
5 e  0.4345538 FALSE

subset(a_data_frame, y > 0 | z, x) # what exactly mean y > 0 | z ?

我看了這本書,說:

子集最多采用三個參數:要子集的數據框、要包含的行的邏輯條件向量和要保留的列名稱向量

沒有關於第二個邏輯參數的更多信息。

rubengavidia0x

這是一個棘手的例子,因為(a_data_frame, y > 0 | z, x)第二個參數表示 y > 0 ,而 "| z" 表示或 z 列中為 True 的值

y>0 評估 rnorm(5) 給出的值,您的值與書本不同,因為也是隨機生成的“或”“|” 符號是在條件為 True的情況下選擇列 z 的情況下,在您的情況下所有值都是 False 並且您看不到發生了什麼但是作為教學示例,如果我們更改z = rnorm(5)而不是runif(5)>5,您可以更好地理解此功能的工作原理.

(a_data_frame <- data.frame(
x = letters[1:5],
y = rnorm(5),
z = rnorm(5)
))

  x           y           z
1 a -0.91016367  2.04917552
2 b  0.01591093  0.03070526
3 c  0.19146220 -0.42056236
4 d  1.07171934  1.31511485
5 e  1.14760483 -0.09855757

所以如果我們有 y<0 或 z<0,列的輸出將是行 a,c,e

> subset(a_data_frame, y < 0 | z < 0, x)
  x
1 a
3 c
5 e
> subset(a_data_frame, y < 0 & z<0, x)
[1] x 
<0 rows> (or 0-length row.names) # there is no values for y<0 and z<0
> subset(a_data_frame, y < 0 & z, x) # True for row 2.
  x
2 b
> subset(a_data_frame, y < 0 | z, x) # true for row 2 and row 4.
  x
2 b
4 d

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

getRangeAt() 函數中索引參數的目的是什麼?

Azure SQL 池究竟是什麼以及是否可以用於 Postgres 數據庫

在 javascript 中的 Date 構造函數上為字符串“0”到“110”解析字符串背後的邏輯是什麼?

為什麼 memccpy 函數使用 int 參數?

為什麼此參數包中的函數調用會向後求值?

在 Solidity 合約中,括號內的函數參數本身有什麼作用?

“”有什麼用?和“:”在具有指針作為參數的函數中?

在參數上使用 OR 邏輯的 Argparse

邏輯上,double sumOfList(List<? extends Double> list) 會使函數變成只讀模式,為什麼 list.remove() 可以編譯成功

為什麼我可以在結構的類型參數中編寫函數類型?

歸類“de-DE-u-kn-true”究竟是什麼意思

AWS ECS 任務內存究竟是什麼?

為什麼在 mdn 的這個示例中,每個內部函數都將先前的(父)函數參數作為輸入?

為什麼我的 Haskell 函數參數必須是 Bool 類型?

什麼是“a>b”作為需要函數指針或 lambda 表達式的參數?

為什麼在 Python 中用參數調用這個“構造函數”?

過程或函數“uspExportGetMailinfoTest”需要未提供的參數“@CUSTOMER”。我錯過了什麼?

為什麼我得到的值超出了我的 rand 函數參數?

一個函數需要什麼才能使用堆疊的 NumPy 參數?

Scaffold 中 PaddingValues 參數的用途是什麼

參數中的 void (*var)(void*) 是什麼意思?

Sys.mkdir ocaml 中的 int 參數是什麼

對函數中向量的所有元素進行邏輯比較

編輯內置函數的正確方法是什麼?

getopt_long 函數中“:”的意義是什麼?

什麼是負和样本參數?

R 為什麼我必須為它自己分配一個形式參數變量才能使這個函數工作?

為什麼我不能在函數中設置我的構造函數?

我應該將什麼對像傳遞給需要 Void 的函數!在參數中?(科特林)