dplyr包 mutate 和 transmute 函数

本文介绍了R语言中dplyr包的mutate和transmute函数的用法。mutate用于在数据框中增加新变量,同时可以删除原有变量;transmute则只保留新生成的变量,删除其他所有原始变量。通过实例展示了如何利用这两个函数进行数据操作,包括生成逻辑值、数值型变量以及如何指定保留特定变量。
摘要由CSDN通过智能技术生成

mutate()函数增加新变量并保留原变量;transmute()函数增加新变量并删除原变量,新变量覆盖原来重名变量。也可以设置变量值为NULL删除变量。

mutate 函数

# 定义测试数据框
data <- data.frame(x1 = 1:5,
                   x2 = letters[1:5],
                   x3 = 3)
# 显示内容 5行3列
> data
  x1 x2 x3
1  1  a  3
2  2  b  3
3  3  c  3
4  4  d  3
5  5  e  3

增加x4列,根据x1 、x2生成逻辑值 x4,我们需要指定逻辑条件:

# generate x4
data %>% mutate(x4 = (x1 == 1 | x2 == "b"))
# result
  x1 x2 x3    x4
1  1  a  3  TRUE
2  2  b  3  TRUE
3  3  c  3 FALSE
4  4  d  3 FALSE
5  5  e  3 FALSE
# 通过设置x3=NULL删除 x3 
data %>% mutate(x4 = (x1 == 1 | x2 == "b"), x3 = NULL)

也可以生成数值类型反应逻辑结果。只需要简单给条件乘以1:

data %>% mutate(x4 = (x1 == 1 | x2 == "b") * 1)
# result
  x1 x2 x3 x4
1  1  a  3  1
2  2  b  3  1
3  3  c  3  0
4  4  d  3  0
5  5  e  3  0

transmute()函数

接着上面的测试数据

data <- data %>% mutate(x4 = (x1 == 1 | x2 == "b") * 1)
data %>% transmute(x3 = x1 + x4, .keep=c("x1","x2"))
# result
> data %>% transmute(x3 = x1 + x4)
  x3
1  2
2  3
3  3
4  4
5  5

# 一次处理多个,并保留其他变量
data %>% transmute(x1=x1*2, x3 = x1 + x4, x4)
# result
  x1 x3 x4
1  2  3  1
2  4  5  1
3  6  6  0
4  8  8  0
5 10 10  0

总结

通过示例对比mutate 和 transmute 函数,前者增加新列,也可以给列设置值NULL删除列; 后者保留同名的列,删除其他列,也可以指定变量保留对应的列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值