
r duplicated用法 在 コバにゃんチャンネル Youtube 的最佳解答

Search
第1章R 语言| 个人问题集. ... 参考https://cran.r-project.org/bin/linux/ubuntu/README.html ... 正则表达式字符列表 [] 用法: [] 中的字符匹配字符本身,如 [.] ... ... <看更多>
#1. R语言中duplicated函数:去重复,取重复- 小鲨鱼2018 - 博客园
duplicated (test) ## 基本用法,返回逻辑值,非重复为F,重复为T [1] FALSE FALSE FALSE TRUE TRUE TRUE FALSE >. 复制代码. 2、对向量去重复、取重复.
串接:paste(), append() · 合併:rbind(), cbind() · 數列:sample(), seq() · 預覽:head(), tail() · 排序:order(), sort() · 重複:unique(), duplicated ...
duplicated (DT) #R中默認的是fromLast=FALSE,即若樣本點重複出現,則取首次出現的;否則去最後一次出現的 ... #data.table中duplicated與unique的用法.
#4. R语言中duplicated函数:去重复,取重复 - 51CTO博客
R 语言中duplicated函数:去重复,取重复,1、创建测试数据>test<-c(1,2,3,1,1,2,5)##创建向量测试数据>test[1]1231125>duplicated(test)##基本用法,
#5. R语言中的去重unique() duplicated()函数| 白介素2的博客
R 语言中,duplicated函数是一个可以用来解决向量或者数据框重复值的函数,它会返回一个TRUE和FALSE的向量,以标注该索引所对应的值是否是前面数据所 ...
在R语言中查找是否有重复值我们可以通过duplicated函数实现,该函数用法如下:. duplicated(x, incomparables = FALSE, fromLast = FALSE, nmax = NA, ...
#7. R语言base包duplicated函数使用说明- 爱数吧
duplicated ()确定向量或数据帧的哪些元素与下标较小的元素重复,并返回一个逻辑向量,指示哪些元素(行)是重复的。 语法\用法:.
列名不变,去掉重复样本值之后的行名位置仍为原先的行名位置。 2、duplicated函数. 在数据框中应用较为广泛。 # ...
#9. R语言中,unique和duplicate的区别是什么 - 百度知道
duplicated 判断对象的每个取值是否重复,如“duplicated(c(1,1,2,3)) ”返回FALSE TRUE FALSE FALSE ,其中T对应的为重复的值。 【R语言】.
#10. 关于r:删除重复的行 - 码农家园
Remove duplicated rows我已经将CSV文件读入R data.frame。 某些行在其中一列中具有相同的元素。 我想删除该列中重复的行。
#11. 使用R進行數據清洗 - 每日頭條
使用duplicated函數查看數據表中的用戶ID列是否存在重複 ... 本篇文章介紹如何使用R讀取並查看數據,包含一些最基礎的函數使用方法和說明。
#12. 最大最可怕的深海漩涡 - 脱壳百科网
by r语言duplicated函数 at 2021-12-19 07:03:18. 以上所说的是duplicated函数,只是筛选出了重复值而已,并没有对重复值进行处理。 要对重复值进行处理就要 ...
#13. puyhon duplicates 清除重複資料 - iT 邦幫忙
import pandas as pd data = pd.dataframe.colname.('okok.csv') data.drop_duplicates('okok.csv',"first",inplace = True). 我找到這個方法可以清除連續重複的資料!!
#14. 关于Duplicate的意思和用法的提问 - HiNative
"Duplicate" 的用法和例句. Q: 请教我使用duplicate的例句。 A: “Cells are able to duplicate themselves.” “When robots take over the world, they will be able to ...
#15. 6.2 Pivoting | R for data science: tidyverse and beyond
以上就是 pviot_longer 的基本用法,下面来处理一些更复杂的情况。 6.2.1.1 Numeric data in column names. pivot_longer() 提供了 names_ptype 和 values_ptypes 调整数据 ...
#16. R語言實現對數據框按某一列分組求組內平均值 - WalkonNet
推薦閱讀: · R語言中矩陣matrix和數據框data.frame的使用詳解 · 聊聊python中令人迷惑的duplicated和drop_duplicates()用法 · 詳解R語言數據合並一行代碼 ...
#17. duplicate row 中文 - 查查在線詞典
duplicate row中文::重復行…,點擊查查權威綫上辭典詳細解釋duplicate row的中文翻譯,duplicate row的發音,音標,用法和例句等。
#18. 数据处理|数据查重怎么办?去重,就这么办! - 腾讯云
数据清洗过程中的典型问题:数据分析|R-缺失值处理、数据分析|R-异常值处理和重复值处理,本次简单介绍一些R处理重复值的用法:.
#19. duplicate ]英文詞性- 形容詞
例句與用法:. A duplicate; a copy. 副本; 複製品. He gave me a duplicate key of his house. 他給 ...
#20. R语言之删除重复数据_艾特曾经的博客-程序员宝宝
这篇主要介绍如何在R中识别和删除重复数据。主要用的到R base和dplyr函数:duplicated():用于识别重复的元素和unique():用于提取唯一元素 ...
#21. R语言实现对数据框按某一列分组求组内平均值 - 程序员的世界
这篇文章主要介绍了R语言实现对数据框按某一列分组求组内平均值, ... pcm_df$duplicated & lt ;- duplicated( paste (pcm_df$OUT_MAT_NO, ...
#22. 去除重复行duplicated_陈陈的专栏-程序员信息网
python 函数参数self_Python类中self参数用法详解_weixin_39606575的博客-程序员信息网. Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干 ...
#23. R语言确定重复元素anyDuplicated()函数-中英文对照帮助文档
anyDuplicated(.)是any(duplicated(.))的generalized更有效的快捷方式。 使用方法-----Usage----- duplicated(x, incomparables = FALSE, ...)
#24. R语言数据去重 - 代码先锋网
R 语言数据去重,代码先锋网,一个为软件开发程序员提供代码片段和技术文章聚合的 ... c[!duplicated(c[3]),] a b d 1 1 a 1 #用法与is.na()对比 x[!is.na(x)] #选中 ...
#25. Day08 R語言的函式(Function) - iT 邦幫忙
R summary tableR duplicatedr summarize用法r語言$意思r replace用法R sumr語言指令r語言範例r取代資料r mutate用法r篩選資料r replace用法r計算出現次數r欄位加總r ...
#26. duplicate的用法- 例句_2022最新英文解释词典 - 英语单词大全
duplicate. 英[ˈdju:plɪkeɪt]. 美[ˈdu:plɪkeɪt]. 第三人称单数:duplicates第三人称复数: ...
#27. 語言入門
R 是一個開放的程式語言(Open Source),藉由指令宣告的方式來做統計運算. 分析與視覺化的資料繪圖。 ... (5) 其他:Sorting/ordering/unique/duplicated vectors.
#28. R中如何实现去除重复数据? - COS论坛| 统计之都
你显然没有搞明白duplicated的用法 ... 参考了这个网址,http://tolstoy.newcastle.edu.au/R/e8/help/09/12/8736.html,觉得有点不对劲。
#29. R commands(11.09.13) 指令用法簡介
使用時機:已對R 指令有基本了解,但對於不常用的指令還未完全熟記,或遇到問題時想知道. R 有哪些指令可用,所以整理此表以供簡單查詢,詳細用法請見 ...
#30. 数据处理|数据查重怎么办?去重,就这么办!
数据清洗过程中的典型问题:缺失值、异常值和重复值处理,本次简单介绍一些R处理重复值的用法:. 将符合目标的重复行全部删掉;.
#31. 【R语言】unique和duplicated函数应用_哔哩哔哩 - BiliBili
#32. Fpcolors r - 二信高中多元資訊站
将多个图合并成一个图时的空白文本R语言中的去重unique() duplicated()函数; ... 图比较常见,但其实掌握了用R语言中的forestplot包绘制森林图的各个用法,森林图 ...
#33. R常见问题解答153 分钟学会
的Ross Ihaka 和Robert Gentleman 共同创立。由于R 受Becker, ... 这里duplicated 函数返回了元素是否重复的逻辑值。 ... 美)环境用法。
#34. Template:捷徑重定向/doc - 维基百科,自由的百科全书
用法 [编辑]. 创建属于快捷方式重定向这一类的页面时,请在重定向语法后的同一行放置“{{快捷方式重定向}}”。则该页面将被自动归类到Category:快捷方式重定向和Category: ...
#35. 如何用r語言整理數據? - 知乎_多寶網登入
在R語言中查找是否有重複值我們可以通過duplicated函數實現,該函數用法如下:. duplicated(x, incomparables = FALSE, fromLast = FALSE, nmax = NA, ...
#36. R中如何判断并删除重复行? - R语言论坛 - 经管之家
ntsean 发表于2017-1-7 05:23 dplyr可以提供比较通用的方法. 请教一下, 这个%>% 代表什么意思呢? 应该在哪里能够查到这样用法的说明?
#37. 5 逻辑型向量及其运算| R语言教程
函数 duplicated() 返回每个元素是否为重复值的结果,如:. duplicated(c(1,2,1,3,NA,4,NA)) ## [1] FALSE FALSE TRUE FALSE FALSE FALSE TRUE.
#38. R語言學習筆記(二):常用指令 - Yanwei Liu
“R語言學習筆記(二):常用指令” is published by Yanwei Liu. ... dup_removed=dup[!duplicated(dup)]#縮寫變數 ... example(name) #查詢name函式的用法 ...
#39. duplicated怎么读- 英语词典 - 新东方在线
duplicated 是什么意思?duplicated怎么读?新东方在线字典为用户提供单词duplicated的释义、duplicated的音标和发音、duplicated的用法、例句、词组、词汇搭配、近 ...
#40. R语言基础
R ︱高效数据操作——data.table包(实战心得、dplyr对比、key灵活用法、数据合并) ... duplicated:返回的是逻辑结果,重复值为TRUE,不重复的是FALSE。 参考文章:R ...
#41. 數據結構從0到1——初級篇 - GetIt01
... 需要提前安裝openxlsx包(用於讀取Excel數據),將.xlsx文件讀入R中,並將數據保存在excelData中。 ... str_split_fixed()的用法 ... #duplicated()的用法.
#42. r语言unique函数 - 函数知识网
unique返回对象的不同取值,如“unique(c(1,1,2,3)) ”返回1 2 3duplicated 判断对象的每个取值是否重复,如“duplicated(c(1,1,2,3)) ”返回FALSE TRUE ...
#43. r - 计算重复代码的出现次数 - IT工具网
对于更一般的用法: sum(a %in% unique(a[duplicated(a)])) 还是本着弗里克先生的方法的一线思想: sum(a %in% names(which(table(a) > 1))). 关于r - 计算重复代码的 ...
#44. duplicate英语怎么读,翻译成中文是什么意思-读/说/理解/用法
单词duplicate英语怎么读,用英语怎么说,美式、英式音标读音;duplicate英语 ... He could nr replicate his brilliant performance of the magic trick.
#45. duplicate
a hard feat to duplicate. 难以再现的丰功伟绩. v.intr.(不及物动词) ... 源自duplex duplic- [成双] *参见dwo-. 继承用法 ... He duplicated his former mistakes.
#46. Excel 自動篩選、移除重複資料,留下唯一值教學 - Office 指南
... Skip to main content; Skip to primary sidebar. Office 指南. 辦公室工作實用教學. 選單. Excel · Word · PowerPoint · Windows · PowerShell · R ...
#47. R實戰第五篇:常用函數的用法- 碼上快樂
Basic包是R語言預裝的開發包,包含了常用的數據處理函數, ... duplicated()函數用於檢查重復的元素,返回元素類型是邏輯值的向量或數據框:當元素的 ...
#48. pandas:找出、删除重复的数据(Python) - 程序员宅基地
duplicated ()可以被用在DataFrame的三种情况下,分别是pandas.DataFrame.duplicated、pandas.Series.duplicated和pandas.Index.duplicated。他们的用法都类似,前两个 ...
#49. 数据处理|数据查重怎么办?去重,就这么办! - 360doc个人 ...
更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号。 ... 中的典型问题:缺失值、异常值和重复值处理,本次简单介绍一些R处理重复值的用法:.
#50. R 软件及统计分析- 从入门到精通
与最优的使用方法相去甚远,原因是它给R 所提供的功能附加了许多限制。 ... unique(): 如函数名所示,该函数移除向量中重复(duplicate)出现的元素。 > ...
#51. Mysql replace into vs on duplicate key update
SQL was developed by IBM in the 1970s for use in System R, and is a de facto ... 中replace into 与insert into on duplicate key update 的用法和不同点, ...
#52. [心得] 資料整理套件介紹- 序章magrittr - 看板R_Language
... dcast.data.table, melt, fread, duplicated, transform, rbindlist, ... 閱讀上會容易很多舉一個簡單的例子,來說明'%>%'的用法` R a = 1 f ...
#53. 在R 中使用Dplyr 删除基于多列的重复行 - 芒果文档
column_name: column name based on which duplicate rows will be removed. 编程需要懂一点英语. 示例:基于单列删除重复行的R程序 ...
#54. R 統計軟體-- 語法與函數 - 陳鍾誠的網站
unique(x), if x is a vector or a data frame, returns a similar object but with the duplicate elements suppressed.
#55. duplicated_真的是个瘦子-程序员ITS201_duplicated
python 中pandas 只不模块中的duplicated方法返回一个布尔型的series, ... 一直很模糊,因为代码大多是自己码出来的,但是用法都不清楚,项目不是一个完整的项目, ...
#56. 如何在多个列上点点重复- IT答乎
r. 发布时间:2021-08-17. 如何在多个列上点点重复. 这是一个有两个列和四 ... duplicated(mydata[c("ID","month")]) [1] FALSE TRUE FALSE FALSE ... Extract 的用法.
#57. Dataset manipulation (SAS & R) | KeepNotes blog
R code unique(iris) # All duplicate rows removed ... 以上是简单的例子,其实对数据的拼接也有比较复杂的用法,比如除了 set 外,还有 append ...
#58. How to remove duplicate rows from a table in SQL Server
Microsoft SQL Server tables should never contain duplicate rows, nor non-unique primary keys. For brevity, we will sometimes refer to primary keys as "key" ...
#59. stata寻找重复数据(duplicates) - 研究、学习、分享
stata内置了一个命令duplicates ,专门用于处理这类事务。 ... 这个命令我只提最简单和实用的三个用法,其他用法在上述help文件中自己亲自试一下就 ...
#60. yesteryear的意思- 英漢詞典 - 漢語網
yesteryear中文的意思、翻譯及用法:adv. 過去不久的歲月n. ... 英漢詞典提供【yesteryear】的詳盡中文翻譯、用法、例句等. ... 英[ˈjestəjɪə(r)]美[ˈjestərjɪr].
#61. Replicate 同义词| 柯林斯英语词库 - Collins Dictionary
in the sense of duplicate. Definition ... Scientists hope the work done can be duplicated elswhere. 同义词 ... 以'R' 开头的所有英语同义词 ...
#62. Set - JavaScript - MDN Web Docs - Mozilla
Use to remove duplicate elements from the array const numbers = [2,3,4,4,2,3,3 ... 写敏感& duplicate ommision new Set("Firefox") // Set(7) [ "F", "i", "r", ...
#63. R資料分析:50人中至少兩人相同生日的機率有多大?模擬給你看
要看看這50個同學中是不是有重複的生日,我們可以用duplicated ... any(duplicated(bdays))#> [1] TRUE ... R資料分析:case_when的用法.
#64. DataFrame剔除重复行- Cache One
pandas.DataFrame.duplicated(),详情见:pandas.DataFrame.duplicated用法 ... r - 遍历基于tidyverserlang 的函数的输入值.
#65. R语言实现对数据框按某一列分组求组内平均值 - 云海天教程
这篇文章主要介绍了R语言实现对数据框按某一列分组求组内平均值,具有很好的参考价值 ... pcm_df$duplicated <- duplicated(paste(pcm_df$OUT_MAT_NO, ...
#66. 第1章R 语言| 个人问题集
第1章R 语言| 个人问题集. ... 参考https://cran.r-project.org/bin/linux/ubuntu/README.html ... 正则表达式字符列表 [] 用法: [] 中的字符匹配字符本身,如 [.] ...
#67. 新手指引
SharedObject 是一个用来解决并行运算内存问题的package, 它可以将一个R对象的 ... copyOnWrite = FALSE) x2 <- x1 ## x2 will not be duplicated when a change is ...
#68. R系列之常用函数集合
这篇文章用于积累R中使用的小函数的用法和实例,便于后续查询和使用。 ... column names 'AltDP.x', 'DP.x', 'AltDP.y', 'DP.y' are duplicated in ...
#69. 【R语言】:简单数据处理分析- 文章详情
以前专门介绍过,详见【R语言】:导入Excel数据 ... 函数na.omit()更详尽的用法和实例可参考【R语言】:基本数据管理(1)中有关缺失值的相关内容。
#70. R语言︱数据去重 - 术之多
以上是根据你的数据得到的,R中默认的是fromLast=FALSE,即若样本点重复出现,则 ... 构建一个布尔向量,索引; > index<-duplicated(data.set$Ensembl.
#71. 将集合操作从R的数据帧移植到数据表:如何识别重复行?
将集合操作从R的数据帧移植到数据表:如何识别重复行?, Porting set operations from R's data frames to data tables: How to identify duplicated ...
#72. 通过每组选择一行来折叠数据帧 - 猿问答
是否有一个R习惯用法可以将RLE的长度向量转换为开始每次运行的行的索引, ... R> d[ !duplicated(d$x), ] x y z 1 1 10 20 3 2 12 18 4 4 13 17 R>.
#73. 为什么R语言unique函数输出的日期值是重复的?
为什么R语言unique函数输出的日期值是重复的? ... r语言order函数; r语言duplicated函数; r语言中unique怎; duplicated函数 · r语言distinct函数 ...
#74. 使用R语言筛选数据中的重复行-爱代码爱编程
R 语言里有一个判断重复值的函数duplicated,可以分别运行如下三行程序,分别输出每一行数据和前面是否 ... 通过画下方这张图,了解到plot/points/axis/legend的用法。
#75. 超高性能数据处理包data.table | 粉丝日志
在R语言中,我们最常用的数据类型是data.frame,绝大多数的数据处理的操作都是围绕着data.frame结构来做的。 ... 本章就将data.table包的使用方法。
#76. 計算重複次數的次數R代碼 - 優文庫
例a=c(15,32,27, 63, 15,99, 32,32) dup=unique(a[duplicated(V.Ints)]) len=length(unique(duplicated(dup))) 我 ... 計算重複次數的次數R代碼 ... 更多的一般用法:
#77. R語言︱邏輯運算 - 程式前沿
R 軟體包含兩個邏輯值,TRUE和FALSE。 ... 二者擇一match,%in%:查詢unique:找出互不相同的元素which:找到真值下標集合duplicated:找到重複元素。
#78. 404 Not Found_r语言删除多行值 - 乾润网
... R中删除包含多个值得行; 科学网; r语言去掉空值并用很小的值代替; R语言中如何删除数据对象; R语言duplicated函数用法删除重复行挑选同组中第一行 ...
#79. DataFrame剔除重复行- 探索字符串
pandas.DataFrame.duplicated(),详情见:pandas.DataFrame.duplicated用法 ... r - Dplyr 使用字符串变量作为表达式重命名 · R - 使用向量列表中的名称的子集数据框 ...
#80. r - 像在Stata 中一样标记R 中的所有重复行- 程序调试信息网
跟进我的问题here ,我试图在R 中复制Stata 命令的功能 duplicates tag ,这允许我标记数据集的所有 ... 慢慢来,通过 ?data.table (并在那里运行示例)以了解用法。
#81. duplicated函数- 紫竹知识网
duplicated 函数 · 项目重大变更需要重新立项吗 · 打印纸重复利用 · 打印纸能不能重复打印 · r中duplicate怎么用.
#82. R实战第五篇:常用函数的用法 - 传递工业设计信息!
Basic包是R语言预装的开发包,包含了常用的数据处理函数, ... duplicated()函数用于检查重复的元素,返回元素类型是逻辑值的向量或数据框:当元素的 ...
#83. Pandas read csv multi thread
You can concat A and B and check for duplicated records: In this code, ... Pandas is our memory data analytic engine. read_csv (r'Path where the CSV file is ...
#84. 关于unique函数用法的问题? - biwse网- 传递饮食知识!
jinkelazzz发表于2018-8-1409:13factor类型的话直接levels就可以了我找到原因了。在unique滞后向量化,输出来的是各个水平的位置,跟r中的rank函数的 ...
#85. Ue4 instanced mesh - micampus Residencias
>Resize the mesh as big as you want to match the area or duplicate it and snap it ... see grass spawning, make sure you have Real-Time enabled (Ctrl + R).
#86. r语言中统计数字重复的次数 - 河智科学网
r 语言中统计数字重复的次数 ... 最佳答案: duplicated() 找出重复出现的元素。 ... 成语用法窃窃私语偏正式;作谓语;用于人小声说话。
#87. r语言去重复 - 985知识网
R 语言去重复数据本次总结来源网络,有多处参考在R语言中,去掉重复数据的函数是:duplicated 删掉所有列中数据一样的: >test <- data.frame( x1 ...
#88. R语言|常用函数的用法 - 新闻红
R 语言|常用函数的用法 ... 2.2 操作符%in%的用法 ... #duplicated()函数用于检查重复的元素,返回元素类型是逻辑值的向量或数据框:当元素的值 ...
#89. Delete duplicated rows if the whole row matches using VBA
Remove Duplicate Rows ( RemoveDuplicates ). When the parameter of the Columns argument of the RemoveDuplicates method should refer to ...
#90. Openfoam ingroups - Reald2
OpenFOAM(R)の基礎チュートリアルとParaViewの使い方The International Journal for Numerical ... 如果您正苦于以下问题:C++ polyBoundaryMesh类的具体用法?
#91. R语言duplicated函数用法,删除重复行/挑选同组中第 ... - 子光网
#duplicated函数是一个可以用来解决向量或者数据框重复值的函数,它会返回一个TRUE或FALSE的向量,以标注该索引所对应的值是否是前面数据所重复的值。
#92. duplicated是什么意思、发音和在线翻译
duplicated 基本解释复制出的,复写书的;复印;重复,被复制,复制(duplicate的过去式和过去分词);使成双;duplicated网络解释1.
#93. Pandas index duplicated
pandas index duplicated Across multiple columns. ... R find duplicate in data frame and extract them. def dup_rows_index(df): dup ... 用法:DataFrame.
#94. Ksmtuned sleep 60
383005] kworker/0:0 R running task 13504 5 2 0x80000000 [ 310. Linux Fun. 90 [who] [df] Filesystem ... 如果您正苦於以下問題:Python system函數的具體用法?
#95. Normal map unity - BRL srl
X is stored in the R channel (and duplicated in G and B) and Y is stored in the A channel, ... and the method of this Sep 23, 2017 · 为何要用法线贴图.
#96. [Linux&FreeBSD] Find 指令用法教學 - 小惡魔
筆記一下自己常用的find 指令,適用於FreeBSD 或者是Linux 各大distribution,系統管理這個指令就相當重要了,在搭配grep,sed,awk,perl 可以快速 ...
#97. Postgres first value in group
In This tutorial we will learn about head and tail function in R. Each execution of the query can ... PostgreSQL ARRAY_AGG()用法及代码示例 GROUP BY Clause.
r duplicated用法 在 [心得] 資料整理套件介紹- 序章magrittr - 看板R_Language 的推薦與評價
鑒於andrew大大的提議,現下剛好有閒就來寫一系列資料整理套件的文章
版上比我熟這些套件的人也不少,如果不足的部分,再麻煩幫忙補充
目前想要介紹的套件有 (後面列一些我常用的function)
- magrittr : pipe operator如 '%>%', '%<>%', '%T>%', '%$%'
- data.table: class 'data.table', dcast.data.table, melt, fread,
duplicated, transform, rbindlist, merge
- reshape2 : dcast, melt (required for data.table)
- plyr : name_rows, colwise, mapvalues
- dplyr : mutate, summarise, arrange, filter, distinct, group_by, n,
select, rowwise, tbl_dt, mutate_each, summarise_each
- tidyr : gather, separate, spread
這篇的重點放在 magrittr,因為後面我會大量使用pipe operator來寫程式碼
我盡量每一個operator用簡單一點的方式說明,如果不太了解再麻煩告知
程式碼部分,我都會用` R 跟 ` 做引號
1. '%>%'
這個operator用來傳遞數值,避免過多的nest造成閱讀上的困難
像是
a_list = list(1:6, 3:5, 4:7)
lapply(a_list, function(x) setdiff(sort(unique(unlist(a_list))), x))
第二行拆解閱讀是很困難的,但是寫成
a_list %>% unlist %>% unique %>% sort %>% {
lapply(a_list, setdiff, x = .)
}
閱讀上會容易很多
舉一個簡單的例子,來說明 '%>%'的用法
` R
a = 1
f = function(a) a + 1
f(a)
a %>% f
a %>% f()
a %>% f(.)
`
跑上面的程式可以發現,最後四個output都一樣
其實 %>% 做的就是把 左邊變數 放進 右邊函數裡做執行
也就是說 f(a) 等同於 a %>% f (或是上面其他三種)
另外,可能會覺得 `a %>% f(.)`會很奇怪
在magrittr中, `.`就是用來代表%>%前面的變數
所以 a %>% f(.) 程式會把.的位置換成a,變成 f(a)
`.` 在magrittr的應用中,會佔很大的比例
像是do.call, Reduce第一個input是function,第二個是list
我們通常傳入list,所以此時必須用 . 做位置的控制
再者,c, cbind, rbind會根據位置不同來決定是合併於何處
也是一個很重要的問題,因此,用 `.`做傳入位置的控制是必須的
針對這個,我給一段簡單的程式碼讓你去試試看
` R
a_list = list(1:5, 3:7, 6:10)
a_list %>% do.call(rbind, .)
a_list %>% Reduce(cbind, .)
1:5 %>% rbind(3:7, .)
1:5 %>% rbind(., 3:7)
f = function(x, a, b) a*x^2 + b
1:5 %>% f(., 2, 5) # 同 1:5 %>% f(2, 5)
1:5 %>% f(2, ., 5)
1:5 %>% f(2, 5, .)
`
再者,%>% 也可以傳入一個block (用{}括住的部分)
像是前面提到的
` R
a_list = list(1:6, 3:5, 4:7)
a_list %>% unlist %>% unique %>% sort %>% {
lapply(a_list, setdiff, x = .)
}
`
先說明怎麼閱讀 %>%的部分
a_list %>% unlist %>% unique %>% sort 就是
a_list把全部元素合併(unlist),然後取唯一(unique),接著排列所有元素(sort)
就照著%>%的順序去讀就可以順利解讀
再來就是block的部分
{}括住之後,裡面的只要不是其他%>%後面的 `.`都代表你前面傳入的值
這樣很難懂,舉個例子
` R
1:2 %>% {
list(
cbind(9:10, .),
3:4 %>% cbind(9:10, .)
)
}
`
output長這樣
[[1]]
.
[1,] 9 1
[2,] 10 2
[[2]]
.
[1,] 9 3
[2,] 10 4
可以看到第一個可以很直覺的解讀,9:10是跟傳入的1:2做行合併
而第二個`.`,因為前面有了一個新的 '%>%'
所以這一個`.`就被前面的 3:4取代
所以第二個output變成9:10跟3:4做行合併
2. '%<>%'
如果懂了 %>%, 這個就不難了
先看簡單的例子 (add是magrittr提供用在 %>%上的 `+` (這部分請看最後面的補充))
` R
a = 1
a %>% add(1) # 同 a %>% '+'(1) or a %>% '+'(., 1)
a # 1
a %<>% add(1)
a # 2
`
這個例子可以看的出來 %<>% 除了傳入變數之外,也會改變傳入變數的值
也就是可以把 a %<>% add(1) 看成 a = a + 1
你如果有一串要做最後賦值給你傳入的變數
只需要在第一個傳導變數的operator做改變即可,舉例來說:
` R
dat = data.frame(a = 1:3, b = 8:10)
dat = dat %>% rbind(dat)
dat2 = data.frame(a = 1:3, b = 8:10)
dat2 %<>% rbind(dat2)
all.eqaul(dat, dat2) # TRUE
`
3. '%T>%'
%T>% 只傳遞變數,不回傳值,通常用來傳遞到不回傳值的function上
像是plot, library, install.packages, plyr的 *_ply等
這個operator可以幫你把前面做好的值賦予一個變數
並且同時做後面function的動作,舉例來說:
` R
dat = data.frame(a = rep(1:3,2), b = rnorm(6))
dat2 = dat %>% {tapply(.$b, .$a, sum)} %>%
{ data.frame(a=names(.) %>% as.integer, b = .)
} %T>% plot(.$a, .$b)
`
這裡dat2就是一個新的data.frame,同時,我們也把a, b的scatter plot畫出來
這部分可以用dplyr的group_by以及summarise完成
還沒提到dplyr,所以我們先用替代方法做
這裡順便把第四個operator '%$%'一起說明
dat %>% {tapply(.$b, .$a, sum)} 會不會覺得很冗長,也很容易忘記要放'.$'
但是,'%$%'提供了直接把前面變數的元素 直接以名字做操作
再也不需要 .$name這麼麻煩,直接用 name做你想要的操作就好
因此,那行就可以簡單寫成 dat %$% tapply(b, a, sum)
是不是就變得簡單的很多?
4. '%$%'
前面提到了,這裡就給一個例子就好
` R
a = 3
b = -2
x = rnorm(100)
y = a + b * x + rnorm(100)
fit = lm(y ~ x)
sigma_hat = fit %$% {crossprod(residuals) / df.residual}
`
下一章應該會介紹data.table跟reshape2,後會有期。
補充:
magrittr提供很多其他function的別名
像是 '+', '*', '[', '[[', '<- rownames()'等等
有興趣請去magrittr的manual查看extract的部分
這個可以讓你寫pipe chain的時候更加順手
像是
vals = 1:3 %>% data.frame(a = ., b = .^2) %>% set_rownames(LETTERS[1:3]) %>%
lm(b ~ a, data = .) %>% predict
不然你可能會這樣寫
dat = 1:3 %>% data.frame(a = ., b = .^2)
rownames(dat) = LETTERS[1:3]
vals = dat %>% lm(b ~ a, data = .) %>% predict
你可能只是要vals這個變數,你卻還要多創一個dat這個暫存變數,而中斷chain
[關鍵字]: magrittr
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.205.27.107
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1437452331.A.CD1.html
... <看更多>