我有一个包含300多个列的数据框df1,并且我试图基于list1中的几十个输入,通过列名将其子集为df2。 但是,list1中的某些项目实际上不是df1中的列名称。 因此,出现“未定义的列”错误:

df2 <-df1 [,list1]
[.data.frame (df1,,list1)中的错误:
未定义的列已选择

我知道发生此错误的原因。 但是我无法通过list1来查看哪些出现在df1中,哪些没有。 因为我必须用很多不同的列表来做很多次。 有没有一种方法可以简单地忽略这些值(而不在子集df2中不包含list1中的那些空列名值)?

感谢您的帮助。

#1楼 票数:1 已采纳

怎么样: df2 <- df1[,list1[list1 %in% names(df1)]]

#2楼 票数:1

我希望自己使用更好或更短的解决方案。 这是另一个

df1[,intersect(names(df1), list1)]

  ask by Henri Wathieu translate from so

未解决问题?本站智能推荐:

1回复

在定义中使用省略号时,如何在R函数调用中捕获错误或未定义的参数

我与承认一个问题所困扰,但对此我还没有找到一个简单的解决方案:如何捕捉通过传递到R的功能和错误指定参数,当函数定义包括省略号或三个点... 。 正如Wickham的高级R所述 : 使用...是有代价的 - 任何拼写错误的参数都不会引发错误,并且...之后的任何参数都必须完全命名。
1回复

子集数据框时选择了未定义的列

我有一个数据框, str(data)可以显示有关我的数据框的更多信息,结果如下: 但是,例如,当我想对14以上的Ozone量进行子集化时,我使用以下代码给我一个错误: [.data.frame (data,data $ Ozone> 14)中的错误:选择了未定义的列
1回复

在 cooccur-package 中运行“cooccur”函数时出现问题:未定义选定的列

我试图在二进制存在/不存在数据帧上运行cooccur()函数,但收到以下错误: r in [.data.frame (mat, spp, site_mask[spp, ] * site_mask[spp_next, : undefined columns selected 我无法弄清楚问
1回复

为什么我使用naiveBayes函数会得到未定义的列?

我试图在R中运行naiveBayes函数,并不断收到“未定义的列已选择”的错误,无法弄清原因。 档案: http : //www.mediafire.com/file/1dgqluc1f8gbngc/Train.Example.csv 据我所知,我正在选择所有列,但这表示它们是未定
3回复

我需要帮助在 R 中制作数据框列表

我读取了我的数据框并将其存储在一个变量中。 然后我创建了一个空列表。 我创建了一个循环,它遍历列并从select()函数生成一个数据框,并将其分配到列表中的下一个位置。 然而,这不是正在发生的事情,只有列被存储在列表中。 这是我的代码: 我做了一些进一步的分析,发现了这一点: temp1
2回复

在R中解析数据时出错

我尝试编写以下代码,以识别范围内的数字,即:SNP [i,1]应小于Working [j,1]并大于Working [j,2],以将其添加到新数据帧中。 SNP文件为350行,可工作6500。由于某种原因,我最终得到10000行的数据,这些数据不符合我的条件。 很明显我这里有问题吗?
3回复

如何按组添加一列拟合值到数据框?

假设我有这样的数据框: 如何拟合由变量g分组的回归y~x ,并将fitted和resid一般方法中的值添加到数据框中? 我知道我能做到: 然后是rbind(A, B, C) 。 但是,在现实生活中我不使用lm (我在quantreg包中使用rqss )。 该方法偶尔会失
2回复

在R中创建和附加到数据框(错误:参数意味着不同的行数:0,1)

我正在创建并附加到R中的数据框: countTable的头部和结构如下: 如果我单独查看嵌套for循环中的代码,它就像我希望的那样工作。 但是,当我运行整个代码时,我收到一个错误: