如何在 r 中使用 with() 和 inside() 函数


R 中的with()inside()函数可用于计算基于数据框的表达式。

这些函数使用以下语法:

 with(data, expression)
within(data, expression)

金子:

  • data:数据块的名称
  • 表达式:要计算的表达式

这是两个函数之间的区别:

  • with()计算表达式而不修改原始数据框。
  • inside()计算表达式并创建原始数据帧的副本。

以下示例展示了如何在实践中使用以下数据框使用每个函数:

 #create data frame
df <- data. frame (x=c(3, 5, 5, 7, 6, 10),
                 y=c(2, 2, 0, 5, 9, 4))

#view data frame
df

   xy
1 3 2
2 5 2
3 5 0
4 7 5
5 6 9
6 10 4

示例 1:使用 with() 函数

我们可以使用以下with()函数将数据框两列之间的值相乘:

 #multiply values between x and y
with(df, x*y)

[1] 6 10 0 35 54 40

将数据框中x列和y列的值相乘,结果是长度为6的向量。

示例 2:使用 inside() 函数

我们可以使用下面的inside()函数将数据框中两列之间的值相乘,并将结果分配给数据框中的新列:

 #multiply values in x and y and assign results to new column z
within(df, z <- x*y)

   X Y Z
1 3 2 6
2 5 2 10
3 5 0 0
4 7 5 35
5 6 9 54
6 10 4 40

乘法结果现在存储在名为z的新列中。

需要注意的是, inside()函数创建原始数据帧的副本,但实际上并没有修改原始数据帧:

 #view original data frame
df

   xy
1 3 2
2 5 2
3 5 0
4 7 5
5 6 9
6 10 4

要永久存储乘法结果,必须将结果分配给新的数据框:

 #multiply values in x and y and assign results to new data frame
df_new <- within(df, z <- x*y)

#view new data frame
df_new

   X Y Z
1 3 2 6
2 5 2 10
3 5 0 0
4 7 5 35
5 6 9 54
6 10 4 40

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在 R 中向数据框添加列
如何在R中的数据框中添加空列
如何在R中按列对数据框进行排序

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注