在学习R语言时,包是很实用但复杂的工具。包有很多种,可根据目的选择。无论选择何种包,在安装过程中经常会出现各种问题。即使可以顺利安装,理解并合理利用这些工具的各函数,也需要消耗极大的耐心和毅力。利用好包这个工具,能为日后的分析工作带来极大的便利。
先从文中的dplyr包入手吧。
今天先记录对文中所列函数的语法的理解吧:
- mutate(),新增列:mutate(file, new=row1*row2),在file的row1列后插入row2列。
- select(),按列筛选:select(file, row),在file中筛选出指定列,可以是数字指定列数(单一数字,或多数字的向量),也可以是列名(可以是单列,或逗号分隔的多列,或含多列名的向量)。
- filter筛选行:filter(file,row_name=row),列名可以是单列或多列,均可包含表达式
- arrange(),按列对整个表格进行排序:arrange(file,row),默认为升序(从小到大),用desc(row)即为降序(从大到小)。
- summarise(),汇总:summarise(file,统计法(如mean(row1), sd(row1)等))。summarise(group_by(file,row1),统计法(如mean(row2), sd(row2)等)),先对file的row1列进行分组,后对每一组的row2列进行mean、sd等统计。
特殊内容(主要是语法):
- 管道操作 %>% (cmd/ctr + shift + M):可能和前面学过的环境变量(如attach、detach)有异曲同工之妙吧?
- count统计某列的unique值:count(file,row)。
- 连接(注意:不要引入factor,加入语句stringsAsFactors = F):
- 简单合并:cbind()合并后列数增加,需要两个数据框有相同的行数;rbind()合并后行数增加,需要两个数据框有相同的列数。
- 內连inner_join,取交集:inner_join(file1, file2, by="x"),以元素“x”为key_word,取其在file1首次出现的位置,输出在此位置前file1的所有元素及其在file1与file2中的所处行的全部元素,依序分列合并。
- 左连left_join:left_join(file1, file2, by="x"),在inner_join基础上保留元素“x”在file1及file2所处行的全部元素。
- *全连full_join,取合集:full_join(file1, file2, by="x"),在left_join基础上再输出file2中元素“x”所处列的其余元素,其余列的元素不合并。
- 半连接semi_join:semi_join(x=file1, y=file2, by="x"),以元素“x”为key_word,取其在file1首次出现的位置,输出在此位置前file1的所有元素,即弃file2,半保留file1。
- 反连接anti_join:anti_join(x=file1, y=file2, by="x"),以元素“x”为key_word,取其在file2首次出现的位置,弃在此位置前file2的所有元素在file1中的所处行的全部元素,即file2,半保留file1。
**semi_join与anti_join有半互补之意