您好,读者! 在本文中,我们将仔细研究R编程的两个密切相关但不同的功能 - R with() 和 within() 函数。
R 与() 函数
我们经常遇到情况,我们觉得需要构建定制 / 用户定义的函数来执行一定的操作. 使用 R with() 函数,我们可以操作 R 表达式以及调用该函数的过程!
也就是说, with() 函数
使我们能够在函数中作为参数评估一个 R 表达式. 它只在 data frames上工作. 这就是为什么对 R 表达式的评估结果与作为参数传递给它的数据框架有关。
合成:**
1with(data-frame, R expression)
** 例子:**
1rm(list = ls())
2
3Num <- c(100,100,100,100,100)
4Cost <- c(1200,1300,1400,1500,1600)
5
6data_A <- data.frame(Num,Cost,stringsAsFactors = FALSE)
7
8with(data_A, Num*Cost)
9with(data_A, Cost/Num)
在上面的示例中,我们直接在 with() 函数中计算了数据框 data_A 的Num*Cost
表达式。
之后,我们还计算了函数中的成本/数
表达式。
一个接一个的两个陈述的理由是强调 with() 函数不会以任何代价改变原始数据框架,它会为数据框架中的每个列相关的每个值提供单独的输出。
出发点:**
1> with(data_A, Num*Cost)
2[1] 120000 130000 140000 150000 160000
3> with(data_A, Cost/Num)
4[1] 12 13 14 15 16
R 内部() 函数
读了 with() 函数,现在让我们专注于它是双胞胎! Haha! 只是开玩笑! 虽然函数的名称听起来很相似,但它们在功能上有所不同。
R within() 函数
计算了表达式本身的结果,但差异很小,它允许我们创建数据框的副本,并添加一个列,最终存储 R 表达式的结果。
合成:**
1within(data frame, new-column <- R expression)
** 例子:**
1rm(list = ls())
2
3Num <- c(100,100,100,100,100)
4Cost <- c(1200,1300,1400,1500,1600)
5
6data_A <- data.frame(Num,Cost,stringsAsFactors = FALSE)
7
8within(data_A, Product <- Num*Cost)
9within(data_A, Q <- Cost/Num)
在这里,我们对用于 with() 函数的相同表达式进行了评估,但在这里,我们创建了一个新的列来存储表达式的结果。
1> within(data_A, Product <- Num*Cost)
2 Num Cost Product
31 100 1200 120000
42 100 1300 130000
53 100 1400 140000
64 100 1500 150000
75 100 1600 160000
8> within(data_A, Q <- Cost/Num)
9 Num Cost Q
101 100 1200 12
112 100 1300 13
123 100 1400 14
134 100 1500 15
145 100 1600 16
结论
由此,我们已经到这个话题的尽头. 请自由评论下面,如果你遇到任何问题。
对于更多与R相关的帖子,保持调节,直到那时,快乐学习!! :)