0
的子集的值給定以下兩個示例數據幀:dplyr變異使用從單獨的數據幀
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))
我怎樣才能其中行中的df2$site == df1$site
我正在與dplyr突變使用A0dir
值從df2
?
以下不起作用。
df1 %>%
mutate(disp = df2$A0dir[site == df2$site] + A0/B0)
下得到了"site1"
正確的答案,但我需要它的所有網站的工作。
df1 %>%
mutate(disp = df2$A0dir["site1" == df2$site] + A0/B0)
以下兩個產生Error: not compatible with STRSXP
df1 %>%
mutate(disp = subset(df2, site == .$site, select = A0dir))
df1 %>%
mutate(disp = subset(df2, site == "site1", select = A0dir))
在現實中,df1
大得多,我試圖避免在完成加入帶來的A0dir
和B0dir
變量從df2
到df1
。
或者'DF1%>%left_join(DF2)%>%變異(DISP = A0dir + A0/B0)' –