0

それは非常に単純な質問であることは知っていますが、私はまだ R にまったく慣れていません。

このような2つのテーブルがある場合

id = c(1,2,3,4,5,6)
cost = c(11,22,33,44,55,66)
name =c("aa","bb","cc","dd","ee","ff")

tableone = cbind (id, cost)
tabletwo = cbind(name,id)

正しい名前 (tabletwo のように) を tableone にコストとともに追加するにはどうすればよいですか? 実際には、table1 は複数の重複などではるかに複雑です。

4

1 に答える 1

1

data.table パッケージを使用する方法は次のとおりです。

パッケージをロードします。

library(data.table)

定義したとおりにベクトルをロードします。

id <- c(1,2,3,4,5,6)
cost <- c(11,22,33,44,55,66)
name <- c("aa","bb","cc","dd","ee","ff")

ベクトルを 1 列のデータ テーブルに変換します。

id.dt<-data.table(id)
setnames(id.dt,"id")

cost.dt<-data.table(cost)
setnames(cost.dt,"cost")

name.dt<-data.table(name)
setnames(name.dt,"name")

列を結合し、キーを設定します (これはこの例では不要かもしれませんが、表示するためだけに含めました:

tableone.dt<-cbind(id.dt,cost.dt)
setkey(tableone.dt,id)
tabletwo.dt<-cbind(name.dt,id.dt)
setkey(tabletwo.dt,id)

テーブルをマージします。

merge(tableone.dt,tabletwo.dt)

もちろん、これは回り道です。ニーズに合っている場合は、プロセスを簡単に簡素化できます。例えば:

simple.table <- data.table("id"=c(1,2,3,4,5,6),"cost"=c(11,22,33,44,55,66),"name"=name <- c("aa","bb","cc","dd","ee","ff"))

またはトーマスのコメントが機能します。また、flodel がコメントしたリンクも参照してください。

于 2013-05-08T13:49:03.493 に答える