如何在R中使用dplyr根據具有不同水平的因子列和列名連線兩個資料框?
當存在具有不同水平的公共因子時,可以連線資料框,但結果將使用dplyr呈現所有級別。我們可以使用left_join函式連線兩個資料框,但如果兩個資料框大小不同,則第一個資料框的大小必須大於第二個資料框。
示例
考慮以下資料框:
> Class<-c("Statistics","Maths","Chemistry","Physics","Economics","Political Science",
+ "Geography")
> df1<-data.frame(Class)
> df1
Class
1 Statistics
2 Maths
3 Chemistry
4 Physics
5 Economics
6 Political Science
7 Geography
> Subject<-c("Maths","Chemistry","Physics","Economics","Political Science",
+ "Geography")
> Age<-c(18,21,22,25,21,23)
> df2<-data.frame(Subject,Age)
> df2
Subject Age
1 Maths 18
2 Chemistry 21
3 Physics 22
4 Economics 25
5 Political Science 21
6 Geography 23在這兩個資料框中,因子Class和Subject的級別相同,因此我們可以使用它們來連線資料框。
載入dplyr包:
> library(dplyr)
連線兩個資料框:
> left_join(df1,df2, by = c("Class" = "Subject"))
Class Age
1 Statistics NA
2 Maths 18
3 Chemistry 21
4 Physics 22
5 Economics 25
6 Political Science 21
7 Geography 23
Warning message:
Column `Class`/`Subject` joining factors with different levels, coercing to character vector它顯示了一個警告,但這並不重要,因為這個警告只是告訴我們兩個資料框中因子的級別不同。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP