![post-title](https://i.ytimg.com/vi/_RsaNzZFuUU/hqdefault.jpg)
r replicate 用法 在 コバにゃんチャンネル Youtube 的最佳貼文
![post-title](https://i.ytimg.com/vi/_RsaNzZFuUU/hqdefault.jpg)
Search
#1. R语言replicate()用法及代码示例 - 纯净天空
它是会员 apply R 基础包中的家庭。在本文中,我们将学习语法和实现 replicate() 在示例的帮助下发挥作用。 用法: replicate(n, expr, simplify).
#2. R 進階迴圈
replicate 函數主要用於固定計算次數的蒙地卡羅(Monte Carlo)運算,也就是每一次的迭代運算都是完全獨立的狀況。 範例1 以下是一個模擬通車時間的小程式 ...
R Function. 創建時間: January-22, 2021 | 更新時間: February-25, 2021. replicate() 函式可用於建立模擬,因為它可以重複一個表示式的特定次數。
#4. R replicate() 函数教程_neweastsun的专栏 - CSDN博客
本文介绍R replicate() 函数,并通过几个示例介绍其用法。1. 语法说明replicate函数可以重复指定次数执行表达式。语法如下:replicate(n, ...
#5. R语言中rep()与replicate()的区别 - 简书
rep()函数rep()能够把输入的参数重复数次,如: replicate()函数能够将输入的表达式重复数次,大多数上述两个函数几本相等,只有当使用随机数时才会 ...
#6. 18 R程序效率| R语言教程
replicate () 函数用来执行某段程序若干次, 类似于 for() 循环但是没有计数变量。 常用于随机模拟。 replicate() 的缺省设置会把重复结果尽可能整齐排列成一个多维数组输出 ...
#7. R語言編程入門--replicate()函數比較有意思! - 台部落
讀取本地表格文件的主要函數是read.table(),其中的file參數設定了文件路徑,注意路徑中斜槓的正確用法(如"C:/data/sample.txt"),header參數設定是否帶 ...
#8. 第5 章: 常用的R 程式語言5
R 是一種表達式或運算式語言(expression language), 其任何一個述述句都可以看成是一個表 ... 在R 中有一個常用的隨機抽樣函式, sample(), 用法如下. > ...
#9. Chapter 7 基本統計函式| R 資料科學與統計 - Bookdown
{R} 有許多統計函式, 可以對向量物件進行統計分析, {R} 內建所有常見的基礎敘述統計量, 例如累加與乘積 ... 在{R} 中有一個常用的隨機抽樣函式, sample() , 用法如下.
#10. R语言编程入门--replicate()函数比较有意思! - hzs319 - 博客园
2014年2月12日 — 此外还要按照规范来编写代码,养成良好的习惯,包括各种符号的用法和良好的注释。在注释里作笔记是也一个好的学习方法,很多时候你只需要将旧代码略作 ...
#11. R語言rep()用法及代碼示例- 堆棧答案
注:本文由堆棧答案篩選整理自Jitender_1998大神的英文原創作品 Replicate elements of vector in R programming – rep() Method。非經特殊聲明,原始代碼版權歸原作者所有 ...
#12. R程式設計 - 吳漢銘
for applying a function to each entry in an environment. ▫ replicate(n, expr, simplify = "array"). ▫.
#13. replicate函数用法 - 搜狗搜索 - Sogou
R 函数教程_neweastsun的专栏-CSDN博客_replicate函数. 函数,并通过几个示例介绍其用法. 1. 语法说明replicate函数可以重复指定次数执行表达式. 语法如下: replicate(n ...
#14. Replicate 释义| 柯林斯英语词典
replicate. (replɪkeɪt ). 词形3rd person singular present tense replicates , present participle replicating , past tense, past participle replicated.
#15. replicate的用法- 例句_2022最新英文解释词典 - 英语单词大全
replicate 基本解释. 及物动词复制,复写; 重复,反复; 折转; [生] 复制. 形容词复制的; 折叠的; [植]折转的. 名词复制品; 八音阶间隔的反覆音 ...
#16. replicate函数 - 百度一下
R replicate () 函数教程_neweastsun的专栏... 2021年10月17日 ... SQL中Replicate 函数的用法以指定的次数重复字符表达式语法: ... REPLICATE函数的一种用法- Mr.Jack.
#17. 關於Replicate的意思和用法的提問 - HiNative
"Replicate" 的用法和例句. Q: 請提供關於replicate 的例句給我。 A: Experiments were replicated six times before we received any positive result.
#18. remaster翻譯及用法- 英漢詞典 - 漢語網
英漢詞典提供【remaster】的詳盡中文翻譯、用法、例句等. ... use the new CDR remaster command to transform an existing classic replicate to a master replicate.
#19. r语言replicate函数的用法悬赏1元已结束 - 伪原创工具
r 语言replicate函数的用法 悬赏1元已结束. 最新问题. 本科答辩自己的导师在哪(1 小时前); 买职称论文一般多少钱(1 小时前); 引用的文献怎么降重(2 小时前) ...
#20. 點對點異動複寫- SQL Server
點對點拓撲. 以下案例說明點對點複寫的一般用法。 ... 您必須使用備份或使用' 選項來初始化訂閱 replication support only 。 如需詳細資訊,請參閱不 ...
#21. 手把手教你用R語言玩高中數學:簡單抽樣 - RPubs
本節將為同學介紹R語言中隨機抽樣的函數sample(),其中有四個參數是同學需要認識並學會 ... replace = TRUE) return(sum(dice)) } replicate(times, ...
#22. replicate 和duplicate 有什么不同? - 知乎
Replicate 含义较复杂些:它作为“照搬、复制”来用时,一种用法是“按照某种预设的 ... com/questions/68920/duplicate-vs-replicate-vs-reduplicate?r=SearchResults#
#23. r语言rep函数用法,r语言中function函数 - 函数知识网
r 语言rep函数用法 ... R语言吗?rep replicates the values in x. It is a generic function, and the (internal) default method is described here.repx ...
#24. R語言_函式的使用_rep - IT閱讀
R 語言_函式的使用_rep ... 解釋:Replicate Elements of Vectors and Lists(複製向量和列表的元素) ... 以上就是rep函式的使用方法了。
#25. R语言学习RcppEigen进行矩阵运算 - 编程宝库
R 语言学习RcppEigen进行矩阵运算:前面我们介绍了一些基本的Rcpp的用法:让你的R代码更 ... R.colwise().reverse() // flipud(R) R.replicate(i,j) // repmat(P,i,j) ...
#26. Imfilter matlab replicate - Muzhav
'circular' MATLAB g imfilterf w corr replicate f padarrayf deltarow deltacol ... 3. filtering_mode用于指定在Feb 21, 2014 · Matlab中imfilter ()函数的用法.
#27. replicate
replicate. [5replikit] ... To become replicated; undergo replication. ... plic3e [to fold] * see plek-. plic3e [折迭] *参见plek-. 继承用法 ...
#28. 在"英语"词典里replicate}的意思
在英语词典里带使用范例的replicate含义replicate的近义词以及replicate的25种语言 ... 该图表展现了单词«replicate»在过去500年中的用法频率的每年演化其实施是基于 ...
#29. replicate 中文
爱词霸权威在线词典,为您提供replicate的中文意思,replicate的用法讲解 ... 可輸入英文單字、中文字詞、台灣地址、計算式按[Enter]重新輸入replicated /r'ɛplɪk,etɪd/ ...
#30. 1.1.1 向量的类型与长度 - 利用R语言进行数据分析
seq() 函数还有另外一个用法,当我们知道等差序列的起止数值,但不知道步长应该是多少,只知道应该产生多少个元素的向量,可以使用 ... 1.1.3 循环重复向量replicate.
#31. replication翻译_用法_发音_词组- 英语词典 - 新东方在线
replication 是什么意思?replication怎么读?新东方在线字典为用户提供单词replication的释义、replication的音标和发音、replication的用法、例句、词组、词汇搭配、 ...
#32. 求教:replicate的用法 - COS论坛- 统计之都
E.g., replicate(1e3L, rnorm(1L)) is equivalent to local({ans=numeric(1e3L); for(i in seq_len(1e3L)) ans[i]=rnorm(1L); ans})
#33. repmat - 中文百科知識
repmat全稱是Replicate Matrix ,意思是複製和平鋪矩陣,是MATLAB裡面的一個函式。語法有B = repmat(A,m,n),將矩陣A 複製m×n 塊 ... 與B = repmat(A,m,n) 用法一致。
#34. 不倒翁_r语言rep函数- 二安网
不倒翁-R语言入门系列4-rep函数的用法rep函数的官方 ... 40*(1-.8)+1e-7) # better ## replicate a listfred <- list(happy = 1:10, ...
#35. 【R语言】rep用法
replicate a list复制一个列表 fred <- list(happy = 1:10, name = "squash") rep(fred, 5). 复制了5次 x <- factor(LETTERS[1:4]); names(x) ...
#36. r语言中rep函数的用法 - 欧宝知识网
R 语言_函数的使用_rep 函数名称:rep() 解释:Replicate Elements of Vectors and Lists(复制向量和列表的元素) 语法: rep(x,times,length.out) rep(x ...
#37. R语言base包all.equal函数使用说明- 爱数吧
如果它们不同,则仍会进行某种程度的比较,并返回差异报告。不要使用一切平等如果表达式中直接使用isTRUE(一切平等(…..)或如适用的话。 语法\用法:.
#38. replicate sub-sample 中文是什么意思 - 查查在线词典
replicate sub-sample的中文意思:复分样品…,查阅replicate sub-sample的详细中文翻译、发音、用法和例句等。
#39. 英语: “replicate” - 大词典
大词典网为您提供英文replicate是什么意思,replicate在线翻译,replicate翻译解释,replicate中文意思,replicate用法,replicate读音,replicate音标,replicate发音 ...
#40. 找duplicate用法相關社群貼文資訊
提供duplicate用法相關文章,想要了解更多duplicate replicate ... R summary tableR duplicatedr summarize用法r語言$意思r replace用法R sumr語言指令r語言.
#41. R语言apply()函数用法 - 天天影视网
在R语言的帮助文档里,apply函数的功能是: Retruns a vector or array or list of values obtained by applying a function to margins of an array or matrix.
#42. Matlab中imfilter()函数的用法 - 术之多
(2):也可以对(R、G、B)这三个图像分量一起处理,不用进行第三步。 >>fc_filtered = imfilter(I, w, 'replicate');. 3、重建滤波后的RGB 的图像。 > ...
#43. R语言分析骰子 - 灰信网(软件开发博客聚合)
R 语言分析骰子,灰信网,软件开发博客聚合,程序员专属的优秀博客文章阅读平台。 ... sz_1<-function(){ sample(z,size=1,replace = T) } sz_1() a<-replicate(10 ...
#44. [SQL] 字串填補函數 - ~楓花雪岳~
方法一:依據使用者輸入的填補字元和預計字串長度,使用REPLICATE()來產生完整 ... 填補字元- 利用參數L或R來代表PADL()或是PADR(),一個函數兩種用法.
#45. R语言学习RcppEigen进行矩阵运算 - 脚本之家
前面我们介绍了一些基本的 Rcpp 的用法:让你的R代码更快——Rcpp入门,但用基础 ... fliplr(R) R.colwise().reverse() // flipud(R) R.replicate(i,j) ...
#46. r语言rep(c(1 3) 4),不倒翁-R语言入门系列4-rep函数的用法
不倒翁-R语言入门系列4-rep函数的用法rep函数的官方简介:我英语不是很好, ... length 7 on most platformsrep(1, 40*(1-.8)+1e-7) # better## replicate a listfred.
#47. replicating - 读音、用法和例句_英语字典 - 极简词典
R 开头单词 ... 英汉例句. replicating的一般用法和常见例句| 返回replicating ... Viruses usually replicate at the primary site of the entry.
#48. 第六單元:基礎統計with R
單元摘要:使用R複習並練習操作「基礎統計」 ... R有一群內建的機率分布 ... par(mfrow=c(2,1), cex=0.7, mar=c(3,3,3,1) ) replicate(100000, ...
#49. R语言Basic包常用函数 - 360doc个人图书馆
Basic包是R语言预装的开发包,包含了常用的数据处理函数,可以对数据进行 ... 函数会把表达式的结果重复多次;而replicate()函数是重复调用表达式,每 ...
#50. r语言中table函数 - 脱壳百科网
r 语言replicate函数. 在R语言中使用read.table()函数读取矩形表格数据是非常方便的。 read.table()函数的用法如下: read.table(file, header = FALSE, ...
#51. R中expand.grid的迭代用法 - 码农家园
Iterative usage of expand.grid in R我想知道是否可以使用expand.grid() ... 或者另一个选择是将 replicate 与 simplify=FALSE 一起使用以返回 list ...
#52. R點石成金三人組:apply,lapply,sapply - 人人焦點
R 點石成金三人組:apply,lapply,sapply ... 首先,我們要應用的函數是求和函數,在R中寫爲sum。那麼在R中如何 ... 當然要舉一反三,發掘更多的用法。
#53. [心得] 資料整理套件介紹-第二章dplyr(上) - 看板R_Language
再介紹一些這些函數的其他用法` R dt = data.table(V1 = rpois(20, 3), ... 這裡完整介紹一下使用這幾個套件要怎麼解決` R DF_list = replicate(5, ...
#54. R实战第五篇:常用函数的用法 - 爱在网- 共享哲学信息!
Basic包是R语言预装的开发包,包含了常用的数据处理函数, ... 函数会把表达式的结果重复多次;而replicate()函数是重复调用表达式,每次调用表达式的 ...
#55. lammps教程:replicate命令轻松实现阵列特征结构 - 51CTO博客
这个命名就是今天要介绍的replicate命令。replicate命令格式非常简单:replicatenxnynznx、ny、nz为在xyz ... region Cu sphere 0 0 0 20 units box
#56. 方差分析- 维基百科,自由的百科全书
變異數分析(英語:Analysis of variance,簡稱ANOVA)為資料分析中常見的統計模型,主要為探討連續型(Continuous)資料型態之因变量(Dependent variable)與類別型 ...
#57. replicate的翻译- 音标_读音_用法_例句 - 小易英语
释义:: vi. 复制. 构词:: re再+plic重叠,重复+ate表动词→再重叠[一分]→复制. 例句:: If the virus cannot replicate itself, it cannot cause illness.
#58. 名詞解釋 - IBM
一致交易抄寫(transaction-consistent replication): SQL 抄寫中的一種處理類型, ... 用法概要表格(synopsis table): 一種以直欄組織的表格,由系統自動建立及維護, ...
#59. 多益單字- [ duplicate所有相關資訊,by-英文995 ]
例句與用法:. A duplicate; a copy. 副本; 複製品 ... 同義詞:reduplicate, double, repeat, replicate. duplicate or match. 同義詞:twin, parallel.
#60. R 语言包LFQbench的用法
他说,可以写custom R scripts,但是,我并没有弄明白其中的原理,也不会写······· ... a single quantitative value (just one replicate) in a row.
#61. 一分钟R语言学习-R bracket方括号的用法
#62. 字首“re” 總整理,輕鬆搞定30 個高頻單字!
復甦,re (重複) 加上 viv (活),就是復活囉! replicate (v.) 複製. *補充* 有些字可以直接加上“re”,即有重新做某件事的意思. redo (v.) ...
#63. k 均值聚类- MATLAB kmeans - MathWorks 中国
Replicate 1, 3 iterations, total sum of distances = 201.533. Replicate 2, 5 iterations, total sum of distances ... figure; plot(X(idx==1,1),X(idx==1,2),'r.
#64. 找duplicate copy差異相關社群貼文資訊
提供duplicate copy差異相關文章,想要了解更多duplicate replicate ... replicate 和duplicate 有什么不同? - 知乎。 ... [PDF] R commands(11.09.13) 指令用法簡介。
#65. Eigen: C++开源矩阵学习笔记-111qqz的小窝
map的使用办法: 平均值; unaryExpr(); replicate ... sudo apt-get install libeigen3-dev cd /usr/include/eigen3 sudo cp -R Eigen /usr/include.
#66. R语言学习RcppEigen进行矩阵运算 - 简帛阁
前面我们介绍了一些基本的 Rcpp 的用法:让你的R代码更快——Rcpp入门,但用基础的 Rcpp 来 ... R.colwise().reverse() // flipud(R) R.replicate(i,j) // repmat(P,i,j) ...
#67. Matlab的imfilter函式用法 - 程序員學院
Matlab的imfilter函式用法,用法b imfilter a h b imfilter a h option1 option2 或寫作g imfilter f w fil. ... 0'replicate'.
#68. R语言中的颜色设置 - RVDSD的个人笔记本
这里使用到了 replicate() 函数,这个函数在 rand.data <- replicate(8,rnorm(100,100,sd=1.5)) 这个语句中的意思是,将后面的 rnorm(100,100,sd=1.5) ...
#69. r语言nlm函数 - 翻译大全网
extern float pow(float x, float y)1. 用法:#include <math.h>2. 功能:计算x的y次幂.3. 说明:x应大于零,返回幂指数的结果.4. 举例:// pow.c#include < ...
#70. replica 中文
英漢詞典提供【replica】的詳盡中文翻譯,replicate的用法講解, … ... repair,replica的用法講解,計算式按[Enter]重新輸入replicase /r'ɛplɪk ,簡化過的主板。
#71. R資料分析:50人中至少兩人相同生日的機率有多大?模擬給你看
B <- 10000same_birthday <- function(n){ bdays <- sample(1:365, n, replace=TRUE) any(duplicated(bdays))}results <- replicate(B, ...
#72. R语言lapply函数详解_数据科学家快报 - 博客
replicate ()是sapply()函数对一个表达式的重复评价(涉及随机数生成)。 simplify2array() is the utility called from sapply() when simplify is not ...
#73. R 语言中的函数- 战立侃 - Likan Zhan
函数与R语言中所有其他对象一样可以有无数多个特征 attributes() 。 ... runif(1) < 0.2) { e1 + 1 } else { e1 } } replicate (30, (1 + 2)) rm("(")
#74. 輕鬆學習R 語言:流程控制. 認識程式分支與迴圈迭代 - Medium
在輕鬆學習R 語言:認識向量中我們提到有關於邏輯值向量在判斷條件或者資料篩選的應用,其中資料篩選應用已經在輕鬆學習R 語言:操作向量中示範透過 ...
#75. R 多线程并行计算
R 作为当今最为流行的统计分析软件之一,其处理数据一般都是默认单线程跑 ... 个人觉得蛮好用的),其主要对for循环进行了并行,用法跟parallel包略有 ...
#76. MongoDB Replica Set 高可用性架構搭建
資料庫系統做高可用Replication (副本) 模式算是很常見的架構,在大陸稱為「主備模式」 ... sudo chown -R mongodb:mongodb /var/lib/mongodb-rs-a.
#77. R语言plier包justPlier()函数中文帮助文档(中英文对照)
justPlier(plier)justPlier()所属R语言包:plier Implements the PLIER algorithm . ... justPlier(eset=ReadAffy(),replicate=1:length(eset) ...
#78. Replication Server 参考手册 - SAP Help Portal
有关完整的命令语法和用法信息,请参见“SAP Replication Server 命令”。 ... ST:后面是O(已打开)、C(已关闭)、R(已读取)或D(已删除).
#79. r语言中rep是什么意思 - androidwd
不倒翁-R语言入门系列4-rep函数的用法- R语言论坛. ... R语言中rep()与replicate()的区别rep()函数rep()能够把输入的参数重复数次,如: replicate()函数能够将输入的 ...
#80. Mimikatz dcsync github Mimikatz is a tool I've made to learn C ...
このよSep 11, 2021 · DCSync 就是利用的这个原理,通过Directory Replication ... 等操作系统的Mimikatz 的GitHub 页面是英文的,包括了命令的用法等有用信息。
#81. 如何使用SAS中的PROC SURVEYSELECT返回採樣索引?
其中 outhits 會爲每個採樣行的新紀錄(如果它的採樣2次以上,將成爲2個或更多的記錄),以及可變 REPLICATE 將被創建,將存儲複製號碼。
#82. Torch Rfft2 torch rfft2. Returns a pointer to the underlying C++ ...
Intel (R) Distribution for Python is brought to you by Intel Corporation. ... 在新旧版的torch中的傅里叶变换函数在定义和用法上存在不同,记录一下。1、旧版fft ...
#83. 02-RDataEngineer-05-Data-Manipulation
R 有許多解決這類問題的函數,例如: melt 、 subset 等等,族繁不及備載。 ... filter 函數的用法為,第一個參數放我們要處理的data.frame,後面接著不同的過濾條件。
#84. R常见问题解答153 分钟学会
本文档的目的是为具有一定统计(数学)背景的R 软件初学者提供一个快速认识R 软件的. 平台,如果你无此背景,可能会对其中的若干 ... 美)环境用法。
#85. R「survey」套件簡介-- 以104 年網路沉迷研究為例
為了教授初階的統計課程,開始發展R 軟體,而現階段則是由R Development Core ... 在說明survey 套件的使用方法之前,我們先以簡單隨機抽樣樣本中的變數.
r replicate 用法 在 [心得] 資料整理套件介紹-第二章dplyr(上) - 看板R_Language 的美食出口停車場
這章重點放在dplyr
plyr與dplyr有不少函數是重疊的
不過都會以dplyr為主
plyr跟dplyr有一些名字不同,但功能相似的函數
我會一併介紹
先列一下這章要介紹的函數 (沒標註的就是來自dplyr)
A. 基本整理的函數:arragnge, filter, mutate, select, group_by, summarise, n
B. 增併rownames為變數:add_rownames, plyr:::name_rows
C. list to data.frame:as_data_frame
D. by var 合併函數:join, plyr:::join, data.table:::merge, base:::merge
E. col/row 合併函數:bind_rows, data.table:::rbindlist, bind_cols
F. 取唯一列:distinct, data.table:::unique
G. 列行運算:rowwise, plyr:::colwise
H. 值映射(對應修改):plyr:::mapvalues, plyr:::revalue
I. 其他函數:summarise_each, mutate_each
J. 特殊函數:plyr:::here
1. 基本整理函數
arrange: 根據你選定的變數做排列 (可以是多個變數)
filter: 根據你設定的條件做row 篩選(or selection)
mutate: 根據你給定的值賦予新變數,或是變更舊變數
select: 根據給定的變數名稱做選擇,也可以做刪除變數
group_by: 根據給定變數做group,以銜接summarise
summarise: 資料整併
n: 計算資料個數
用一個簡單例子來展示用法:
` R
set.seed(100)
(dt = data.table(V1 = rpois(5, 3),
V2 = sample(c("g1", "g2"), 5, 1), V3 = rnorm(5)))
# V1 V2 V3
# 1: 2 g1 0.3186301
# 2: 2 g2 -0.5817907
# 3: 3 g1 0.7145327
# 4: 1 g2 -0.8252594
# 5: 3 g1 -0.3598621
dt %>% arrange(V1, V2, V3)
# V1 V2 V3
# 1: 1 g2 -0.8252594
# 2: 2 g1 0.3186301
# 3: 2 g2 -0.5817907
# 4: 3 g1 -0.3598621
# 5: 3 g1 0.7145327
dt %>% filter(V1 <= 2, V3 < 0)
# V1 V2 V3
# 1: 2 g2 -0.5817907
# 2: 1 g2 -0.8252594
dt %>% mutate(V5 = V1 * V3, V6 = substr(V2, 2, 2),
V7 = round(V3), V8 = 1L, V3 = V3 **2)
# V1 V2 V3 V5 V6 V7 V8
# 1: 2 g1 0.1015251 0.6372602 1 0 1
# 2: 2 g2 0.3384804 -1.1635814 2 -1 1
# 3: 3 g1 0.5105570 2.1435981 1 1 1
# 4: 1 g2 0.6810531 -0.8252594 2 -1 1
# 5: 3 g1 0.1295008 -1.0795864 1 0 1
dt %>% select(V1, V2)
# V1 V2
# 1: 2 g1
# 2: 2 g2
# 3: 3 g1
# 4: 1 g2
# 5: 3 g1
dt %>% group_by(V2) %>% summarise(size_g = n(), m_V3 = mean(V3),
s_V1 = sum(V1))
# V2 size_g m_V3 s_V1
# 1 g1 3 0.2244336 8
# 2 g2 2 -0.7035251 3
`
上面的例子是一些簡單運用的範例
先介紹一下tbl_df, tbl_dt的class
tbl_df跟tbl_dt只會列出一部分的資料
做操作時比較不會因為太多資料的輸出造成當機
要更改列出的資料量,可以這樣做
` R
set.seed(100)
(dt = data.table(V1 = rpois(50, 3), V2 = sample(c("g1", "g2"), 50, 1),
V3 = rnorm(50))) %>% tbl_dt(FALSE)
# V1 V2 V3
# 1 2 g1 -0.4470622
# 2 2 g1 -1.7385979
# 3 3 g1 0.1788648
# 4 1 g1 1.8974657
# 5 3 g2 -2.2719255
# 6 3 g1 0.9804641
# 7 4 g1 -1.3988256
# 8 2 g1 1.8248724
# 9 3 g2 1.3812987
# 10 1 g1 -0.8388519
# .. .. .. ...
print(dt, n = 5)
# V1 V2 V3
# 1 2 g1 -0.4470622
# 2 2 g1 -1.7385979
# 3 3 g1 0.1788648
# 4 1 g1 1.8974657
# 5 3 g2 -2.2719255
# .. .. .. ...
`
再介紹一些這些函數的其他用法
` R
dt = data.table(V1 = rpois(20, 3), V2 = sample(c("g1", "g2"), 20, 1),
V3 = rnorm(20), V4 = rgamma(20, 5, 3))
# 你可以直接用一個你想要使用的變數放入,不須先立變數
dt %>% arrange(V1*V3, V3)
dt %>% filter(abs(V1*V3) > 1)
# desc是dplyr的函數提供反向排列
dt %>% arrange(V1)
dt %>% arrange(desc(V1))
# 兩種做變數刪除的方式 (我偏好第二種)
dt %>% mutate(V4 = NULL)
dt %>% select(-V4)
# select 還有提供各種特別函數於select中使用
dt %>% select(starts_with("V"))
dt %>% select(ends_with("1"))
dt %>% select(contains("2"))
dt %>% select(matches("\\w\\d"))
dt %>% select(num_range("V", 1:2))
`
2. 增併rownames為變數
如標題所示,直接看範例
` R
dat = data.frame(A = 1:5, row.names = paste0("City_", LETTERS[1:5]))
dat %>% name_rows
dat %>% add_rownames
dat %>% add_rownames("city") # add_rownames可以改成你要的名稱
`
3. list to data.frame
as_data_frame提供比as.data.frame有效率的轉換方法
我之前也沒用過,不過看到manual寫到這個函數,就忍不住想分享一下
不過這個函數強迫list的element要有name,使用上要注意一下
` R
library(microbenchmark)
dat_list = lapply(rep(1e6, 200), rnorm)
names(dat_list) <- paste0("A", 1:200)
microbenchmark(
as_data_frame(dat_list),
as.data.frame(dat_list)
)
#Unit: milliseconds
# expr min lq mean median uq
# as_data_frame(dat_list) 1.22642 1.281156 1.418296 1.311944 1.339027
# as.data.frame(dat_list) 19.83196 20.199147 21.397833 20.350524 21.143335
# expr max neval
# as_data_frame(dat_list) 6.957693 100
# as.data.frame(dat_list) 33.307182 100
`
看起來是沒差很多啦(汗顏,可能資料不夠大
4. by var 合併函數
先介紹base的merge,這個函數是用來合併兩個data.frame
除了input的兩個data.frame,還有其他五個input (其他input之後再提)
a. by - 合併根據的變數
b. by.x - 合併根據的變數 於第一個data.frame的名稱
c. by.y - 合併根據的變數 於第二個data.frame的名稱
d. all.x - 是否保留來自第一個data.frame的values
e. all.y - 是否保留來自第一個data.frame的values
註:還有一個input是 all 可以一次控制all.x跟all.y
我用簡單的範例去介紹這幾個選項
` R
## 產生資料
set.seed(75)
(x = data.frame(cat1 = sample(c("A", "B", NA), 5, 1),
cat2 = sample(c(1, 2, NA), 5, 1), v = rpois(5, 3),
stringsAsFactors = FALSE))
# cat1 cat2 v
# 1 A 1 4
# 2 A 2 3
# 3 <NA> NA 4
# 4 B NA 4
# 5 A 1 4
(y = data.frame(cat1 = sample(c("A", "B", NA), 5, 1),
cat2 = sample(c(1, 2, NA), 5, 1), v = rpois(5, 3),
stringsAsFactors = FALSE))
# cat1 cat2 v
# 1 A 2 1
# 2 A 1 8
# 3 <NA> NA 2
# 4 B 2 5
# 5 <NA> 1 3
## 兩個data.frame的資料都不保留 (預設值)
merge(x, y, by = c("cat1","cat2"), all.x = FALSE, all.y = FALSE)
# cat1 cat2 v.x v.y
# 1 A 1 4 8
# 2 A 1 4 8
# 3 A 2 3 1
# 4 <NA> NA 4 2
## 保留第一個data.frame的全部資料
merge(x, y, by = c("cat1","cat2"), all.x = TRUE, all.y = FALSE)
# cat1 cat2 v.x v.y
# 1 A 1 4 8
# 2 A 1 4 8
# 3 A 2 3 1
# 4 B NA 4 NA
# 5 <NA> NA 4 2
## 保留第二個data.frame的全部資料
merge(x, y, by = c("cat1","cat2"), all.x = FALSE, all.y = TRUE)
# cat1 cat2 v.x v.y
# 1 A 1 4 8
# 2 A 1 4 8
# 3 A 2 3 1
# 4 B 2 NA 5
# 5 <NA> 1 NA 3
# 6 <NA> NA 4 2
## 保留兩個data.frame全部的資料
merge(x, y, by = c("cat1","cat2"), all.x = TRUE, all.y = TRUE)
# cat1 cat2 v.x v.y
# 1 A 1 4 8
# 2 A 1 4 8
# 3 A 2 3 1
# 4 B 2 NA 5
# 5 B NA 4 NA
# 6 <NA> 1 NA 3
# 7 <NA> NA 4 2
`
all.x跟all.y這四種組合分別對應到dplyr的四種join
a. inner_join - merge(..., all.x = FALSE, all.y = FALSE)
b. left_join - merge(..., all.x = TRUE , all.y = FALSE)
c. right_join - merge(..., all.x = FASLE, all.y = TRUE)
d. full_join - merge(..., all.x = TRUE , all.y = TRUE)
但是merge跟dplyr的join還是有些微不同
dplyr的join不會去比對by variable都是NA的情況
給一個例子就好
` R
inner_join(x, y, by = c("cat1","cat2"))
# cat1 cat2 v.x v.y
# 1 A 1 4 8
# 2 A 2 3 1
# 3 <NA> NA 4 2
# 4 A 1 4 8
`
PS: If you use dplyr 0.4.1, there is something wrong. You're gonna find the
output do not contain the line: 3 <NA> NA 4 2. Please update your dplyr
to 0.4.2 or higher version.
至於plyr:::join就沒有這個問題
` R
join(x, y, by = c("cat1","cat2"), 'inner')
# cat1 cat2 v v
# 1 A 1 4 8
# 2 A 2 3 1
# 3 <NA> NA 4 2
# 4 A 1 4 8
`
plyr:::join用法其實大同小異,它是用type去控制join方式
最後是data.table:::merge
` R
setDT(x)
setDT(y)
merge(x, y, by = c("cat1","cat2"))
# cat1 cat2 v.x v.y
# 1: NA NA 4 2
# 2: A 1 4 8
# 3: A 1 4 8
# 4: A 2 3 1
`
其實用法跟merge一模一樣,不贅述
介紹完by, all.x, 跟all.y之後,我們來介紹by.x跟by.y
用一個簡單例子:
` R
set.seed(75)
x = data.frame(cat1 = sample(c("A", "B", NA), 5, 1),
cat2 = sample(c(1, 2, NA), 5, 1), v = rpois(5, 3),
stringsAsFactors = FALSE)
y = data.frame(cat3 = sample(c("A", "B", NA), 5, 1),
cat4 = sample(c(1, 2, NA), 5, 1), v = rpois(5, 3),
stringsAsFactors = FALSE)
merge(x, y, by.x = c("cat1","cat2"), by.y = c("cat3","cat4"))
# cat1 cat2 v.x v.y
# 1 A 1 4 8
# 2 A 1 4 8
# 3 A 2 3 1
# 4 <NA> NA 4 2
`
我想這個例子已經很好說明了by.x跟by.y了
接著是再dplyr怎麼做?
` R
inner_join(x, y, by = c("cat1" = "cat3", "cat2" = "cat4"))
# cat1 cat2 v.x v.y
# 1 A 1 4 8
# 2 A 2 3 1
# 3 A 1 4 8
`
至於plyr:::join跟data.table:::merge就沒有支援這種功能了
dplyr還提供兩種join: semi_join跟anti_join
簡單說明一下,semi_join就是只保留第一個data.frame變數的inner_join
anti_join則semi_join沒有配對的組合
這兩個有興趣再去玩玩看,這裡就不提供例子了
最後是一個實際問題
我如果要merge超過三個的df怎麼辦?
可以參考一下 #1LaHm_aH (R_Language)
這裡完整介紹一下使用這幾個套件要怎麼解決
` R
DF_list = replicate(5, data.frame(cat1 = sample(c("A", "B"), 5, 1),
cat2 = sample(c(1, 2), 5, 1), v = rnorm(5)), simplify = FALSE)
# 下列兩種會變成橫表,每一個data.frame的v都會保留
Reduce(function(x, y) merge(x, y, by = c("cat1","cat2"), all=TRUE), DF_list)
Reduce(function(x, y) full_join(x, y, by = c("cat1","cat2")), DF_list)
# 只保留第一個data.frame的值
join_all(DF_list, by = c("cat1","cat2"), type = "full")
# 直表,保留全部的v,等同於全部做rbind
join_all(DF_list, by = c("cat1","cat2", "v"), type = "full")
`
其實這樣每一個方法的結果都會很混亂,非常不建議,除非你知道你目標是什麼
5. col/row 合併函數
bind_rows跟rbindlist其實就是在做 do.call(rbind, .)或是 Reduce(rbind, .)
只是這兩個function更加有效率
如果還不懂do.call(rbind, .)跟Reduce(rbind, .)再做什麼
剛好可以利用這個機會去弄懂他們在幹嘛
` R
DF_list = replicate(5, data.frame(cat1 = sample(c("A", "B"), 5, 1),
cat2 = sample(c(1, 2), 5, 1), v = rnorm(5)), simplify = FALSE)
bind_rows(DF_list)
rbindlist(DF_list)
`
bind_cols等同於 do.call(cbind, .)
`
DT_list = lapply(1:5, function(x) data.table(rnorm(5)) %>%
setnames(paste0("V", x)))
bind_cols(DT_list)
`
還有一半,我們留到下一章再討論。
[關鍵字]: dplyr
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.205.27.107
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1437545676.A.A4B.html
第三章可能要拖到晚上了,現在有點累
... <看更多>