1 回答

TA貢獻1804條經(jīng)驗 獲得超7個贊
就是把左件的值發(fā)送給右件的表達式,并作為右件表達式函數(shù)的第一個參數(shù),就是管道函數(shù)。
例如:
anscombe_tidy <- anscombe %>%mutate(observation = seq_len(n()))
以上代碼等價于:
anscombe_tidy=mutate(anscombe,observation = seq_len(n()))
擴展資料:
1、管道函數(shù)的作用
%>%來自dplyr包的管道函數(shù),其作用是將前一步的結(jié)果直接傳參給下一步的函數(shù),從而省略了中間的賦值步驟,可以大量減少內(nèi)存中的對象,節(jié)省內(nèi)存。
符號%>%,這是管道操作,其意思是將%>%左邊的對象傳遞給右邊的函數(shù),作為第一個選項的設置(或剩下唯一一個選項的設置)
2、管道函數(shù)的語法
在普通的函數(shù)中,使用dbms_output輸出的信息,需要在服務器執(zhí)行完整個函數(shù)后一次性的返回給客戶端。如果需要在客戶端實時的輸出函數(shù)執(zhí)行過程中的一些信息,在oracle9i以后可以使用管道函數(shù)(pipeline function)。
關(guān)鍵字PIPELINED表明這是一個oracle管道函數(shù),oracle管道函數(shù)的返回值類型必須為集合,在函數(shù)中,PIPE ROW語句被用來返回該集合的單個元素,函數(shù)以一個空的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)注
- 3153 瀏覽
添加回答
舉報