2

データフレーム (葯のデータフレームのサブセット) から 1 つの列を元のデータフレームに追加したいと考えています。(別の分析にサブセットを使用する必要がありました)。次の例を検討してください。

origdata <- data.frame(id=c(1:5), val=c("a", "b", "c", "d", "e"))
subdata <- origdata[origdata$id>3, ]
subdata$newvar <- factor(c(1, 2), levels=c(1, 2), labels=c("one", "two")) 
### Value for newvar derived from other analysis

newvarここで、元のデータフレームに含む列を追加しNA、サブセットの一部ではないすべてのケースに s を入力したいと考えています。私の最初のアイデアは使用することでした

origdata[origdata$id>3, ]$newvar <- subdata$newvar

これは明らかに機能しません。ただし、最初に機能するように定義newvarした場合NA、それを要因として指定することで得られたすべての追加情報を失います (上記のように):

origdata$newvar <- NA
origdata[origdata$id>3, ]$newvar <- subdata$newvar

これに対する簡単な回避策を知っていますか? merge可能であれば、データフレームが大きく、merge非常に時間がかかるため、使用したくありません。newvarまた、要因として残しておきたい。

4

1 に答える 1

2

それは動作するはずです

origdata$newvar<-subdata[match(origdata$id,subdata$id),"newvar"]
于 2013-09-28T18:20:26.167 に答える