r - R在数据帧过滤中使用的算法是什么?

标签 r algorithm dataframe

例如,我有一个数据框,我想根据特定条件对其进行子集化:

df[df$gender == "woman" & df$age > 40, ]

R 中这种过滤背后的算法是什么?

最佳答案

在执行代码 df[df$gender == "woman"& df$age > 40, ] 期间,会发生以下情况:

  1. df$gender 提取。
  2. df$gender == "woman" 评估,返回 boolean 向量。
  3. df$age 提取。
  4. df$age > 40 评估,boolean 向量返回。
  5. 逻辑元素 AND 应用于第 2 步和第 4 步中向量的每个元素。
  6. df 中提取在步骤 5 中具有 TRUE 标志的行。

在所有上述情况下,调用后端 C\C++ 函数。例如。 [] 子集函数调用 subset.c 中的 do_subset .

您可以在 names.c 中研究 R 函数与它的 C 后端之间的映射。

详情可以咨询Accessing R Source

关于r - R在数据帧过滤中使用的算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52484580/

相关文章:

在 Twitter 句柄向量上循环 search_tweets 函数(rtweet 包)时出现 R 身份验证错误

r - 函数调用向量 v(f(0), f(1), ..., f(2))

r - 将图例居中在 r 中的两个图下方

字符串 Rabin-Karp 基本数字符号

python - 使用正则表达式根据列的值在数据集中创建新列

regex - 从字符串中提取满足长度条件的单词

algorithm - 将二维网格图数据结构转换为树

algorithm - 从 field 中心寻找完美 "snake"的算法?

python - 检测列中两个连续的空值

python - Pandas 在匹配列中以不同的间隔加入数据帧