【问题标题】:Obtain column names efficiently which have values in R有效地获取在 R 中具有值的列名
【发布时间】:2018-04-13 16:34:31
【问题描述】:

我有一个表(Table1),我需要获取具有值的前 10 个列的列名(不是具有“All”的列名)和其余列名(11 到结束)

这是在函数内部使用,因此具有“All”的列名会有所不同。但是,需要找到前 10 个不包含“All”的列的列名。我想有没有办法检查一列是否有值或“全部”字符串。?

在 R 中是否有一种使用colnames 函数的有效方法

谢谢。

Table1:

St abb  crp  crp_N plan pln_ab prac prac_N fun scd    prm  lib   count
1  DL   All  All   All  All    All  All    All 09/30  5230 120   2
.
.

Output: 

St, abb, scd

【问题讨论】:

  • 您能否发布示例的 dput,即dput(Table1),它将给出结构

标签: r select


【解决方案1】:

我们可以使用

names(Table1)[1:10][unlist(Table1[, 1:10, with = FALSE][, 
         lapply(.SD, function(x) all(x != "All"))])]

-

【讨论】:

  • 好吧..这是在函数内部使用,因此具有“All”的列名会有所不同。但是,需要找到前 10 个不包含“All”的列的列名。我想有没有办法检查一列是否有值或“全部”字符串。?
  • 对不起,我忘记在原帖中提及,但已经修改了帖子。
  • 谢谢。由于某种原因 head(colnames(Table1)[Table1 != "All"], 10) 显示前 10 列的所有列名。但是,只需要没有“All”的列名。
  • 还是一样。显示前 10 列的所有列名。
  • 我的前 10 列是字符。这会是我没有得到想要的输出的问题吗?
猜你喜欢
  • 1970-01-01
  • 2013-04-03
  • 1970-01-01
  • 2021-02-01
  • 1970-01-01
  • 2011-11-16
  • 2017-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多