当前位置:  开发笔记 > 编程语言 > 正文

如何通过使用dplyr传递变量名来删除列?

如何解决《如何通过使用dplyr传递变量名来删除列?》经验,为你挑选了2个好方法。

我的df如下:

a <- data_frame(keep=c("hello", "world"),drop = c("nice", "work"))
a
Source: local data frame [2 x 2]
   keep  drop
  (chr) (chr)
1 hello  nice
2 world  work

我可以使用a %>% select(-drop)删除列没有问题.但是,如果我想将变量传递给present drop列,则返回错误.

name <- "drop"
a  %>% select(-(name))
Error in -(name) : invalid argument to unary operator

Psidom.. 38

您可以使用one_of查找列位置然后使用-它来删除它select(-one_of(name)),如果您检查?select,则使用情况记录在示例中的Drop变量部分中:

name <- "drop"
a %>% select(-one_of(name))

# A tibble: 2 × 1
#   keep
#  
#1 hello
#2 world

或者select_,如果-要删除多个列,则需要粘贴列名以删除它们并将粘贴的列名称传递给.dots参数:

name <- "drop"
a %>% select_(.dots = paste("-", name))

# A tibble: 2 × 1
#   keep
#  
#1 hello
#2 world


Mandar.. 9

你可以简单地使用

a <- data_frame(keep=c("hello", "world"),drop = c("nice", "work"))
select(a, -starts_with('drop'))
#   Source: local data frame [2 x 1]
#
#   keep
#   (chr)
# 1 hello
# 2 world

您还必须搜索一些以前编写的解决方案.请阅读此处的文档按名称选择/重命名变量.DPLYR

我希望能为你完成这项工作:) @Psidom thanx更新你的答案..但是我也会请求upvoters投票给我,因为我最近成为了一个活跃的用户,但我仍然要获得stackoverflow的基本权限.



1> Psidom..:

您可以使用one_of查找列位置然后使用-它来删除它select(-one_of(name)),如果您检查?select,则使用情况记录在示例中的Drop变量部分中:

name <- "drop"
a %>% select(-one_of(name))

# A tibble: 2 × 1
#   keep
#  
#1 hello
#2 world

或者select_,如果-要删除多个列,则需要粘贴列名以删除它们并将粘贴的列名称传递给.dots参数:

name <- "drop"
a %>% select_(.dots = paste("-", name))

# A tibble: 2 × 1
#   keep
#  
#1 hello
#2 world



2> Mandar..:

你可以简单地使用

a <- data_frame(keep=c("hello", "world"),drop = c("nice", "work"))
select(a, -starts_with('drop'))
#   Source: local data frame [2 x 1]
#
#   keep
#   (chr)
# 1 hello
# 2 world

您还必须搜索一些以前编写的解决方案.请阅读此处的文档按名称选择/重命名变量.DPLYR

我希望能为你完成这项工作:) @Psidom thanx更新你的答案..但是我也会请求upvoters投票给我,因为我最近成为了一个活跃的用户,但我仍然要获得stackoverflow的基本权限.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有