R的with()和within()函数-你需要知道的一切!

大家好,读者们!在这篇文章中,我们将详细介绍R编程的两个密切相关但又不同的功能 – R的with()函数和within()函数。让我们开始吧!:)


1. 使用with()函数的R操作

我们经常遇到这样的情况,我们需要构建自定义的功能来执行特定的操作。使用 R 的 with() 函数,我们可以在一次操作中对 R 表达式以及调用该函数的过程进行操作!

这就是通过()函数,我们可以在函数内部评估一个作为参数传递的 R 表达式。它仅适用于数据框。这就是为什么对 R 表达式的评估结果是根据传递给它的数据框来完成的。

句法:

with(data-frame, R expression)

For dinner, I would like to eat stir-fried vegetables and steamed fish with a side of rice.

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”。

将这两个陈述连在一起的原因是为了强调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)

For example, I enjoy listening to music while I work.

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 的更多帖子,请继续关注,同时,愉快学习! 🙂

发表回复 0

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


广告
将在 10 秒后关闭
bannerAds