第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

dplyr-muate:使用動(dòng)態(tài)變量名稱

dplyr-muate:使用動(dòng)態(tài)變量名稱

有只小跳蛙 2019-06-19 16:10:43
dplyr-muate:使用動(dòng)態(tài)變量名稱我想用dplyr‘s mutate()若要在數(shù)據(jù)框架中創(chuàng)建多個(gè)新列,請(qǐng)執(zhí)行以下操作。應(yīng)該動(dòng)態(tài)生成列名及其內(nèi)容。來自虹膜的示例數(shù)據(jù):require(dplyr)data(iris)iris <- tbl_df(iris)我創(chuàng)建了一個(gè)函數(shù)來從Petal.Width變量:multipetal <- function(df, n) {     varname <- paste("petal", n , sep=".")     df <- mutate(df, varname = Petal.Width * n)  ## problem arises here     df}現(xiàn)在我創(chuàng)建一個(gè)循環(huán)來構(gòu)建我的列:for(i in 2:5) {     iris <- multipetal(df=iris, n=i)}但是,由于muate認(rèn)為varname是一個(gè)字面變量名,所以循環(huán)只創(chuàng)建一個(gè)新變量(稱為varname),而不是創(chuàng)建4個(gè)變量(稱為petal.2-petal.5)。我怎么才能mutate()使用我的動(dòng)態(tài)名稱作為變量名?
查看完整描述

3 回答

?
子衿沉夜

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

在新發(fā)布的dplyr (0.6.0等待2017年4月),我們也可以完成一項(xiàng)任務(wù)(:=)并通過取消引用(!!)不對(duì)其進(jìn)行評(píng)估

 library(dplyr)
 multipetalN <- function(df, n){
      varname <- paste0("petal.", n)
      df %>%
         mutate(!!varname := Petal.Width * n)
 }

 data(iris)
 iris1 <- tbl_df(iris)
 iris2 <- tbl_df(iris)
 for(i in 2:5) {
     iris2 <- multipetalN(df=iris2, n=i)
 }

基于@MrFlick的輸出檢查multipetal在“iris 1”上應(yīng)用

identical(iris1, iris2)#[1] TRUE


查看完整回答
反對(duì) 回復(fù) 2019-06-19
?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊

這是另一個(gè)版本,可以說更簡(jiǎn)單一些。


multipetal <- function(df, n) {

    varname <- paste("petal", n, sep=".")

    df<-mutate_(df, .dots=setNames(paste0("Petal.Width*",n), varname))

    df

}


for(i in 2:5) {

    iris <- multipetal(df=iris, n=i)

}


> head(iris)

Sepal.Length Sepal.Width Petal.Length Petal.Width Species petal.2 petal.3 petal.4 petal.5

1          5.1         3.5          1.4         0.2  setosa     0.4     0.6     0.8       1

2          4.9         3.0          1.4         0.2  setosa     0.4     0.6     0.8       1

3          4.7         3.2          1.3         0.2  setosa     0.4     0.6     0.8       1

4          4.6         3.1          1.5         0.2  setosa     0.4     0.6     0.8       1

5          5.0         3.6          1.4         0.2  setosa     0.4     0.6     0.8       1

6          5.4         3.9          1.7         0.4  setosa     0.8     1.2     1.6       2


查看完整回答
反對(duì) 回復(fù) 2019-06-19
  • 3 回答
  • 0 關(guān)注
  • 837 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)