首页 > 解决方案 > 我如何理解“选择”和“包含”的组合?

问题描述

我必须将一些 R 代码翻译成 python。我陷入了以下行,我不明白那里发生了什么:

new_data <- data %>% select(-contains('exit'),exit)

什么是 -contains 字符串?至于选择 - 我知道第二个出口是关于一个名为出口的特定列,但它是什么意思 - 包含?退出列将不包含“退出”字符串?

谢谢

标签: r

解决方案


这意味着如果该列中有字符串'exit',则删除该列。考虑这个例子,

df <- data.frame(a = 11:15, exit = 1:5, exit1 = letters[1:5], exit2 = LETTERS[1:5])
df
#   a exit exit1 exit2
#1 11    1     a     A
#2 12    2     b     B
#3 13    3     c     C
#4 14    4     d     D
#5 15    5     e     E

如果你这样做

df %>% select(contains('exit')) 

#  exit exit1 exit2
#1    1     a     A
#2    2     b     B
#3    3     c     C
#4    4     d     D
#5    5     e     E

在这里,exit当我们向其中添加减号 ( -) 时,它会选择其中包含的列,它会删除这些列

df %>% select(-contains('exit'))

#   a
#1 11
#2 12
#3 13
#4 14
#5 15

在您的情况下,它说删除其中包含的所有列,exit但保留带有名称的列exit,其余列保持原样

df %>% select(-contains('exit'),exit)

#   a exit
#1 11    1
#2 12    2
#3 13    3
#4 14    4
#5 15    5

推荐阅读