基于其他数据框中的列中的值来匹配数据框中的列

用户名

我有两个数据帧第一个是df1,具有485513列和100行,

head(df1)

sample  cg1 cg2 cg3 cg4 cg5 cg6 cg7 cg8 cg9 cg10    cg11
AAD_1   33435   33436   33437   33438   33439   33440   33441   33442   33443   33444   33445
AAD_2   0.33    1.33    2.33    3.33    4.33    5.33    6.33    7.33    8.33    9.33    10.33
AAD_3   0.56    1.56    2.56    3.56    4.56    5.56    6.56    7.56    8.56    9.56    10.56
AAD_4   45.9    46.9    47.9    48.9    49.9    50.9    51.9    52.9    53.9    54.9    55.9
AAD_5   46.9    47.9    48.9    49.9    50.9    51.9    52.9    53.9    54.9    55.9    56.9
AAD_6   47.9    48.9    49.9    50.9    51.9    52.9    53.9    54.9    55.9    56.9    57.9
AAD_7   48.9    49.9    50.9    51.9    52.9    53.9    54.9    55.9    56.9    57.9    58.9
AAD_8   49.9    50.9    51.9    52.9    53.9    54.9    55.9    56.9    57.9    58.9    59.9
AAD_9   50.9    51.9    52.9    53.9    54.9    55.9    56.9    57.9    58.9    59.9    60.9
AAD_10  51.9    52.9    53.9    54.9    55.9    56.9    57.9    58.9    59.9    60.9    61.9

第二个具有df2 84行和单列。我的目标是使用df2数据框中的列中的值来获取df1的子集。

head(df2)
    ID
    cg1
    cg2
    cg3
    cg4
    cg5

df2的值是df1中我感兴趣的列名称,因此我在R中尝试了以下单行代码。

> UP=(df1 %>% as.data.frame)[,df2$ID]

Up数据框向我返回查询df2中不匹配的列

并导致数据框UP具有84列和100行,但上述命令行返回的所有列均与输入查询数据帧df2不匹配。

如果有人建议我替代解决方案,那就太好了

阿克伦

在中R,我们可以做

df[as.character(df2$ID)]

假设“ ID”列为factor如果是character上课,那就更容易了

df[df2$ID]

但是,如果“ ID”中的某些元素不在“ df”的列名中,则最好使用 intersect

df[intersect(colnames(df), df2$ID)]

如果'df'是a data.table,则子集列的通常方法是包括with =FALSE在中提到?data.table

默认情况下,with = TRUE,并且j在x的框架内求值;列名称可用作变量。

当with = FALSE j是列名称的字符向量时,要选择的列位置的数字向量或格式为startcol:endcol,并且返回的值始终是data.table。with = FALSE通常在data.table中非常有用,可以动态选择列。请注意,x [,cols,with = FALSE]等效于x [,.SD,.SDcols = cols]。

因此,以上命令将是

 df[, as.character(df2$ID), with = FALSE]

要么

 df[, df2$ID, with = FALSE] #if 'ID' is already character class.

要么

 df[, intersect(colnames(df), df2$ID), with = FALSE]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

基于 Pandas 中的多个约束匹配数据框列

基于R中的多列匹配数据框

Python,通过检查数据框中其他3列的信息来匹配2列的值

根据匹配值从其他数据框中复制列

匹配数据框中列的文本

匹配数据框中的两列

如何应用grepl来匹配数据框中多个列中的值?

基于遍历和比较其他数据框中的列来创建新的数据框

使用其他数据框中的匹配值在数据框中创建新列

如何将数据框的列的值与其他数据框中的正确行匹配?

将数据框中的值与其他列中的其他事件匹配

R基于修改列表中数据框的其他列来添加列

将数据框中的列与其他数据框中的列中的最接近值进行匹配

如何在Pandas数据框中的其他列中填充基于新列的值

Excel:通过评估其他列中的数据与第三列中的匹配数据来编辑列数据

匹配数据框中的值

根据其他列替换数据框中的列值

根据其他列数据框中的值添加列

基于Pandas数据框中其他列的值范围的列总和

创建一个基于数据框中其他列的值创建新列的函数

根据其他数据框中的列值在熊猫数据框中创建列

条件匹配数据框中的列时交换行?

根据其他数据框中的列值替换数据框中的值

使用其他数据框填写列中的缺失值

通过查找其他行中的值来创建新的pandas数据框列

通过两列中的值范围匹配数据框中的行

如何获得匹配数据框中的一列的值与另一列

根据索引合并两个数据框,替换其他列中的匹配值

如何创建新列,将值与其他数据框中的标头匹配