[英]R - Conditionally replacing values with values from another dataframe
我在 R 中工作,我有一个非常大的数据bulk.df
( bulk.df
),其中有一个物种 ID ( species
) 列和一个调查站点编号 ( site
) 列。 每个站点有数百个观测值,有 25 个站点,因此有数千行。
我还有一个单独的数据框 ( meta.df
),其中包含 25 个站点中每个站点的元数据,包括调查深度 ( depth
) 和站点编号 ( site
) 列。
我想在 bulk.df 中添加一个深度列,并使用与meta.df
列出的每个站点相关联的深度信息自动填充该列。 我复制了bulk.df$site
并将其重命名为depth
希望找到一种方法有条件地用meta.df
深度替换此列中的站点编号。
建议表示赞赏!
只需将dplyr::left_join
用于该任务
library(dplyr)
final.df <- bulk.df %>%
left_join(
meta.df %>% select(site, depth),
by = "site"
)
这将采用meta.df
数据meta.df
,仅选择列site
和depth
并将其连接到bulk.df
,使用公共列site
作为映射两个表的键。
带有base R
的选项
merge(bulk.df, meta.df[c('site', 'depth')], by = 'site', all.x = TRUE)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.