如何在 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 中执行其他常见任务: