我有两个数据框,它们的样本几乎相同.df1有很多样本,除了2或3个样本外,它几乎包含了df2中发现的所有样本.

df1人中有一个栏目,假设是性别,它有NA个价值观.这些性别价值观在df2中得到了体现.

我想根据df2填写df1个样本中每个样本的NA值,用于它们之间共享的样本.

我怎么能做到这一点?尤其是df1df2大得多,而且样品的顺序也不一样.

例如,假设这是df1:

       samples       gender
1        Pt8           NA
2        Pt102         NA
3        Pt87          NA
4        Pt1           NA

这是df2:

      subject_id     gender
1        Pt1          male
2        Pt102        male
3        Pt6          female
4        Pt8          male

因此,我只需根据样本名称填写以df1为单位的NA值.

推荐答案

我们可以使用连接

library(data.table)
setDT(df1)[df2, gender := fcoalesce(as.character(gender), i.gender), 
   on= .(samples = subject_id)]

R相关问答推荐

将带有范围的字符串转换为R中的数字载体

为什么以及如何修复Mapview不显示所有点并且st_buffer合并一些区域R?

使用rlang s arg_match判断函数输入列表

R中的子集文件—读取文件名索引为4位数字序列,例如0001到4000,而不是1到4000)

在使用ggroove后,将图例合并在gplot中

格点中指数、双曲和反双曲模型曲线的正确绘制

更改默认系列1以更改名称

计算具有奇数日期的运行金额

在ggplot2中更改小提琴情节的顺序

使用rvest从多个页面抓取时避免404错误

Select 季度月值

将二进制数据库转换为频率表

从R中的对数正态分布生成随机数的正确方法

使用未知字符数(不受限制的最大长度)的Lookback有什么好的替代方案?

如何删除设置大小的曲线图并添加条形图顶部数字的百分比

在R中的数据框上使用Apply()函数时,如何保留非数字列?

创建在文本字符串中发现两个不同关键字的实例的数据框

R仅当存在列时才发生变异

使用geom_sf跨越日期线时的闭合边界

在分面的ggplot2条形图中对条形图进行排序,并省略每组未使用的系数级别