When to write a function

# Define example vector x

x <- 1:10

# Define rng

rng <- range(x, na.rm = TRUE)

# Rewrite this snippet to refer to the elements of rng

(x - rng[1]) /

(rng[2] - rng[1])

# Define example vector x

x <- 1:10

# Use the function template to create the rescale01 function

rescale01 <- function(x) {

# bdy

rng<-range(x,na.rm=T)

(x - rng[1]) / (rng[2] - rng[1])

}

# Test your function, call rescale01 using the vector x as the argument

rescale01(x)

# Define example vectors x and y

x <- c( 1, 2, NA, 3, NA)

y <- c(NA, 3, NA, 3,  4)

# Turn this snippet into a function: both_na()

both_na<-function(x,y){

sum(is.na(x) & is.na(y))

}

mean_ci <- function(level, x) {

se <- sd(x) / sqrt(length(x))

alpha <- 1 - level

mean(x) + se * qnorm(c(alpha / 2, 1 - alpha / 2))

}

# Alter the mean_ci function

mean_ci <- function(x, level = 0.95) {

if (length(x) == 0) {

warning("`x` was empty", call. = FALSE)

return(c(-Inf, Inf))

}

se <- sd(x) / sqrt(length(x))

alpha <- 1 - level

mean(x) + se * qnorm(c(alpha / 2, 1 - alpha / 2))

}

replace_missings <- function(x, replacement) {

is_miss <- is.na(x)

x[is_miss] <- replacement

# Rewrite to use message()

message(sum(is_miss),replacement)

x

}

# Check your new function by running on df$z

replace_missings(df$z,0)

# Define col_sd() function

col_sd<-function(df){

output<-numeric(length(df))

for(i in seq_along(df)){

output[i]<-sd(df[[i]])

}

output

}

All the map functions inpurrrtake a vector,.x, as the first argument, then return.fapplied to each element of.x. The type of object that is returned is determined by function suffix (the part after_):

map()returns a list or data frame

map_lgl()returns a logical vector

map_int()returns a integer vector

map_dbl()returns a double vector

map_chr()returns a character vector

# Find the mean of each column

map_dbl(planes, mean)

# Find the mean of each column, excluding missing values

map_dbl(planes, mean, na.rm = TRUE)

# Find the 5th percentile of each column, excluding missing values

map_dbl(planes, quantile, probs = c(0.05), na.rm = TRUE)

# Save the result from the previous exercise to the variable models

models<-map(cyl, ~ lm(mpg ~ wt, data = .))

# Use map and coef to get the coefficients for each model: coefs

coefs<-map(models,~coef(.))

# Use string shortcut to extract the wt coefficient

map(coefs,"wt")

purrralso includes a pipe operator: %>%. The pipe operator is another shortcut that saves typing, but also increases readability. The explanation of the pipe operator is quite simple: x %>% f(y) is another way of writing f(x, y).

# Define models (don't change)

models <- mtcars %>%

split(mtcars$cyl) %>%

map(~ lm(mpg ~ wt, data = .))

# Rewrite to be a single command using pipes

models %>%

map(summary) %>%

map_dbl("r.squared")

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容

  • 心流是人们全身心投入某事的一种心理状态。如艺术家在创作时。人们处于这种情境时,往往不愿被打扰,即抗拒中断。定...
    预备起阅读 1,001评论 0 2
  • 昨天还跟我老妈说自己情商高, 今天就觉得自己愚蠢得可笑。 我真的笑了,也确实哭了, 因为这样的感觉也许才是伤心。 ...
    樱桃猫腻阅读 665评论 1 0
  • 【关键词:急惊风 火热的年轻人 旅行 自信 勇敢 过犹不及 有勇无谋 爱冒险 鲁莽 傲慢】 【解释】 权杖骑士是极...
    武于乔阅读 1,150评论 0 0
  • 读梁实秋先生《生活的艺术》,按生活篇章些许记录。 谈生老病死 生 先生认生日,一生中只能有一次。因为生命只有一条之...
    谷音sp阅读 236评论 0 1