Skip to Content
R 语言经典实例(原书第 2 版)
book

R 语言经典实例(原书第 2 版)

by J.D. Long, Paul Teetor
June 2020
Beginner to intermediate
522 pages
9h 6m
Chinese
China Machine Press
Content preview from R 语言经典实例(原书第 2 版)
178
6
6.2 将函数应用于数据框的每一行
6.2.1 问题
你有一个函数,并且你需要将其应用于数据框的每一行。
6.2.2 解决方案
mutate 函数将基于一个向量创建一个新变量。但是如果我们使用的函数不能接受向量
并输出向量,那么我们必须使用 rowwise 函数进行逐行操作。
我们可以在管道(pipe)链中使用 rowwise 函数 , 来告诉 dplyr 逐行执行以下所有命令:
df %>%
rowwise() %>%
row_by_row_function()
6.2.3 讨论
让我们创建一个函数 , 并将其应用于数据框的每一行。对于从数 a 到数 b、每 2 个数值
间隔为 c 的等差序列,我们的函数将计算该序列的和:
fun <- function(a, b, c) {
sum(seq(a, b, c))
}
让我们生成一些数据来应用这个函数,然后使用 rowwise 函数将我们的函数 fun 应用
于它:
df <- data.frame(mn = c(1, 2, 3),
mx = c(8, 13, 18),
rng = c(1, 2, 3))
df %>%
rowwise %>%
mutate(output = fun(a = mn, b = mx, c = rng))
#> Source: local data frame [3 x 4]
#> Groups: <by row>
#>
#> # A tibble: 3 x 4
#> mn mx rng output
#> <dbl> <dbl> ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

大规模数据分析和建模:基于 Spark 与 R

大规模数据分析和建模:基于 Spark 与 R

Javier Luraschi, Kevin Kuo, Edgar Ruiz
解密金融数据

解密金融数据

Justin Pauley
数据压缩入门

数据压缩入门

Colt McAnlis, Aleks Haecky

Publisher Resources

ISBN: 9787111656814