2

重複の可能性:
R でデータ フレームを結合する方法 (内側、外側、左、右)?

この質問は、R での結合についてうまくいきます。

内部結合に関するウィキペディアの記事も役に立ちます。

この結果をベースRで再現したいと思います。次の作業はうまくいかないと思います:

merge(employee,department,all=T)
merge(employee,department)

マージ変数が重複しているためです。

ただし、sqldf動作します:

library(sqldf)
sqldf("select * from employee  inner join department ON employee.DepartmentID = department.DepartmentID")

私の質問は次のとおりです。

  1. これは、マージがここで内部結合を実行しないことを意味しますか。

  2. ベースRでこの結合を達成するにはどうすればよいですか.

上記の Web サイトと例から使用する 2 つの data.frames を次に示します。

employee <- structure(list(LastName = c("Rafferty ", "Jones", "Steinberg", 
"Robinson", "Smith", "John"), DepartmentID = c("31", "33", "33", 
"34", " 34", " .")), .Names = c("LastName", "DepartmentID"), class = "data.frame", row.names = c(NA, -6L))

department <- structure(list(DepartmentID = c(31L, 33L, 34L, 35L), DepartmentName =    structure(c(4L,2L, 1L, 3L), .Label = c("Clerical", "Engineering", "Marketing", "Sales"), class = "factor")), .Names = c("DepartmentID", "DepartmentName"), class = "data.frame", row.names = c(NA, -4L))
4

1 に答える 1

3

ジュリエット

これが機能するかどうかを確認してください。データ構造の構造を調べて、結果が意図したものでなかった理由を確認しました。

str(department)
str(employee)
employee$DepartmentID <- as.numeric(employee$DepartmentID)
merge(employee,department)
于 2012-06-15T04:35:18.767 に答える