亚洲国产日韩人妖另类,久久只有这里有精品热久久,依依成人精品视频在线观看,免费国产午夜视频在线

      
      

        直接寫(xiě)和放在函數(shù)中不同的R語(yǔ)言用法

        索引數(shù)據(jù)框中的某一列

        df$A可以索引數(shù)據(jù)框df中列名為A的列的所有值。那么假如列名是一個(gè)R對(duì)象怎么做?

        df <- data.frame(A=1:5, B=(1:5)*2)df$A## [1] 1 2 3 4 5needed_column = 'A'# df$needed_column ? Wrong# 注意是雙方括號(hào)df[[needed_column]]## [1] 1 2 3 4 5

        ggplot2繪圖中指定所需的列信息

        ggplot繪圖時(shí),可以直接提供列名字(如下面的A和B分別指定為x軸和y軸)指定繪圖屬性,但如果列名字是一個(gè)R對(duì)象呢?這一情況常發(fā)生于自定義函數(shù)時(shí)。

        library(ggplot2)ggplot(data=df, aes(x=A, y=B)) + geom_point()

        如下:就需要使用sym和!!了,都來(lái)源于rlang包。

      1. sym把一個(gè)R字符串對(duì)象轉(zhuǎn)換為一個(gè)symbol。
      2. (bang-bang操作符)!!則把symbol再轉(zhuǎn)回R字符串對(duì)象,等同于直接寫(xiě)這個(gè)對(duì)象。
      3. 看新的例子中,xvariable=”A”;xvariable_en <- sym(xvariable)轉(zhuǎn)換為了symbol;aes(x=!!xvariable_en)等同于直接寫(xiě)aes(x=A)。兜兜轉(zhuǎn)轉(zhuǎn),2步轉(zhuǎn)換把想傳的值傳進(jìn)去了。

        # 注意sym和!!的使用#ggplot_points <- function(data, xvariable, yvariable){ xvariable_en <- sym(xvariable) yvariable_en <- sym(yvariable) ggplot(data, aes(x=!!xvariable_en, y=!!yvariable_en)) + geom_point()}ggplot_points(df, "A", "B")

        另外還有syms和!!!,則可以轉(zhuǎn)換向量、列表對(duì)象。

        library(dplyr)df %>% select(A,B)## A B## 1 1 2## 2 2 4## 3 3 6## 4 4 8## 5 5 10# 等同于columns <- c("A","B")columns_en % select(!!!columns_en)## A B## 1 1 2## 2 2 4## 3 3 6## 4 4 8## 5 5 10

        寫(xiě)個(gè)公式 (formula)

        公式 (formula)是一個(gè)在運(yùn)算和繪圖中常用形式,直接寫(xiě)公式A~B可以,但如果是用對(duì)象構(gòu)造公式呢?

        lm(A~B, data=df)## ## Call:## lm(formula = A ~ B, data = df)## ## Coefficients:## (Intercept) B ## 1.192e-15 5.000e-01

        通過(guò)as.formula轉(zhuǎn)換

        y = ‘A’z = ‘B’formula1 <- as.formula(paste(y,"~", z))lm(formula1, data=df)## ## Call:## lm(formula = formula1, data = df)## ## Coefficients:## (Intercept) B ## 1.192e-15 5.000e-01

        當(dāng)然下面這個(gè)“神奇”的寫(xiě)法也可以,整個(gè)表達(dá)式構(gòu)建一個(gè)字符串,再解析執(zhí)行出來(lái)。

        eval(parse(text=paste(“lm(“, y, “~”, z, “, data=df)”)))## ## Call:## lm(formula = A ~ B, data = df)## ## Coefficients:## (Intercept) B ## 1.192e-15 5.000e-01

        鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
        上一篇 2022年6月15日 21:17
        下一篇 2022年6月15日 21:17

        相關(guān)推薦

        聯(lián)系我們

        聯(lián)系郵箱:admin#wlmqw.com
        工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息