我的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的基本权限.
您可以使用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
你可以简单地使用
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的基本权限.