【R语言】:transform函数与with/within函数

2020-06-17 00:00:00 修改 数据 函数 变量 向量

R语言的知识点非常多,并且有许多功能和用法相似的函数,稍微不注意就容易混淆,直接的表现是在运行代码的时候不断报错,特别令人感到郁闷。但这类问题不能抱着“差不多得了”的心态糊弄过去,必须花时间搞清楚,否则在未来往往是当初你抱着侥幸心理放过去的问题不断地给你挖坑。

在学习基本数据管理这部分内容的时候我就遇到了两个功能和用法非常相似的函数,我花费了大量的时间,查阅了许多资料才彻底搞清楚。

函数transform

作用:为原数据框添加新的列,可以改变原变量列的值,也可以赋值NULL删除列变量
用法:transform(‘data’, ...)
data就是要修改的数据,'...'代表要进行的修改

函数with/within

作用:修改原始数据(不仅限于数据框),添加新的列以及改变原变量列的值等

用法:with/within(data, expr, ...)

expr是指R语言的表达式,'...'代表要进行的修改

with函数的返回值是原语句的返回值。within跟with功能相同,但返回值不同,within会返回所有修改生效后的原始数据结构(列表、数据框等)。

下面通过一个简单的例子,说明transform函数与within函数的功能和用法。

假设需要创建一个名称为mydata 的数据框,其中的变量为向量x1和向量x2,现在创建一个新变量sumx存储向量x1和向量x2两个变量的和,并创建另外一个新变量meanx存储向量x1和向量x2两个变量的平均值。

首先,回顾一下数据框的概念。

数据框是R语言里中的一种数据结构,其内部可以由多种数据类型,每一列是一个变量,每行是一个观测记录。数据框是R语言中通用的数据结构,是一种特殊的列表对象。

然后,创建数据框mydata。

#创建数据框mydata,x1和x2是mydata的两个列向量
mydata <- data.frame(x1 = c(2, 2, 6, 4), x2 = c(3, 4, 2, 8))

相关文章