1 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
就是把左件的值發(fā)送給右件的表達(dá)式,并作為右件表達(dá)式函數(shù)的第一個(gè)參數(shù),就是管道函數(shù)。
例如:
anscombe_tidy <- anscombe %>%mutate(observation = seq_len(n()))
以上代碼等價(jià)于:
anscombe_tidy=mutate(anscombe,observation = seq_len(n()))
擴(kuò)展資料:
1、管道函數(shù)的作用
%>%來自dplyr包的管道函數(shù),其作用是將前一步的結(jié)果直接傳參給下一步的函數(shù),從而省略了中間的賦值步驟,可以大量減少內(nèi)存中的對(duì)象,節(jié)省內(nèi)存。
符號(hào)%>%,這是管道操作,其意思是將%>%左邊的對(duì)象傳遞給右邊的函數(shù),作為第一個(gè)選項(xiàng)的設(shè)置(或剩下唯一一個(gè)選項(xiàng)的設(shè)置)
2、管道函數(shù)的語法
在普通的函數(shù)中,使用dbms_output輸出的信息,需要在服務(wù)器執(zhí)行完整個(gè)函數(shù)后一次性的返回給客戶端。如果需要在客戶端實(shí)時(shí)的輸出函數(shù)執(zhí)行過程中的一些信息,在oracle9i以后可以使用管道函數(shù)(pipeline function)。
關(guān)鍵字PIPELINED表明這是一個(gè)oracle管道函數(shù),oracle管道函數(shù)的返回值類型必須為集合,在函數(shù)中,PIPE ROW語句被用來返回該集合的單個(gè)元素,函數(shù)以一個(gè)空的RETURN 語句結(jié)束,以表明它已經(jīng)完成。
例如:
create or replace type MsgType as table of varchar2(4000);
/
create or replace function f_pipeline_test return MsgType
PIPELINED as
begin
for i in 1 .. 10 loop
pipe row('Iteration ' || i || ' at ' || systimestamp);
sys.dbms_lock.sleep(1);
end loop;
pipe row('All done!');
return;
end;
- 1 回答
- 0 關(guān)注
- 3184 瀏覽
添加回答
舉報(bào)