【问题标题】:How do I extract elements from a dataframe by pattern? [duplicate]如何按模式从数据框中提取元素? [复制]
【发布时间】:2019-07-13 10:27:38
【问题描述】:

我有一个数据框 dat,其中包含许多变量,例如

"x_tp1_y"
"g_tp1_z"
"f_tp2_h"

我想提取包含"tp1"的元素。

我已经试过了:

grep("tp1", dat)

grepl("tp1", dat)

dat["tp1",]

我只想 R 给我这个模式的元素,所以我不必输入数据框 dat 中的所有变量名。
像这样:

提取具有模式“tp1”的元素的命令 R 返回具有模式“tp1”的数据帧部分:

x_tp1_y   g_tp1_z
      1         2
      0         3

然后我想创建一个新的数据框。

我知道我只是可以使用

newdat <- data.frame( dat[[1]], dat[ c(1:30)]) 

但我的数据框中的元素太多,这需要很长时间。

感谢您的帮助!

【问题讨论】:

  • 请添加一个可重现的示例以及预期的输出。
  • 我做了,希望对您有帮助

标签: r dataframe design-patterns indexing extract


【解决方案1】:
dat[,grep("tp1", colnames(dat))]

grep 在包含必要模式的 data.frame(向量 colnames(dat))的列名中查找索引号。 "[" 子集

【讨论】:

  • 您应该解释一下代码的作用。这些纯代码答案多次被标记为删除。 (我投了赞成票,因为它似乎回答了这个问题,但用几句话编辑了答案。)
猜你喜欢
  • 1970-01-01
  • 2021-11-30
  • 2016-07-17
  • 1970-01-01
  • 2019-06-02
  • 2021-10-10
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
相关资源
最近更新 更多