の部分集合からの値を使用して突然変異:dplyrは、次の2つの例のデータフレームが与えられる別個のデータフレーム
set.seed(2299)
df1 <- data.frame(site = c("site1","site1","site1","site2","site2","site2"),
A0 = rnorm(6),B0 = rnorm(6))
df2 <- data.frame(site = c("site1", "site2"),
A0dir = c(220, 110), B0dir = c(310,200))
どのように私はdplyrで変異していた行のdf2$site == df1$site
df2
からA0dir
値を使用できますか?
以下は動作しません。
df1 %>%
mutate(disp = df2$A0dir[site == df2$site] + A0/B0)
以下は"site1"
のための正しい答えを取得しますが、私はそれがすべてのサイトのために働く必要があります。
df1 %>%
mutate(disp = df2$A0dir["site1" == df2$site] + A0/B0)
は、次の両方がdf1
がはるかに大きいと私はdf2
からdf1
にA0dir
とB0dir
変数に持って参加完成避けるためにしようとしています、実際にはError: not compatible with STRSXP
df1 %>%
mutate(disp = subset(df2, site == .$site, select = A0dir))
df1 %>%
mutate(disp = subset(df2, site == "site1", select = A0dir))
生成します。
や 'DF1%>%left_join(DF2)%>%に変異(DISP = A0dir + A0/B0)' –