我有两个要删除的主要数据框,其中包含两组列名:
df1 <- structure(list(a = c(1, 2), b = c(3, 4), c = c(5, 6), d = c(7,
8), e = c(9, 10)), row.names = c(NA, -2L), class = c("tbl_df",
"tbl", "data.frame"))
df2 <- structure(list(a = c(1, 2), b = c(3, 4), c = c(5, 6)), row.names = c(NA,
-2L), class = c("tbl_df", "tbl", "data.frame"))
我想在以下列表中删除任何列名称:“ c”,“ d”,“ e”。
当我仅使用one_of()
选择助手时,会收到警告:
> tibble(a = c(1,2), b = c(3,4), c = c(5,6)) %>% select(-one_of("c","d","e"))
# A tibble: 2 x 2
a b
<dbl> <dbl>
1 1 3
2 2 4
Warning message:
Unknown columns: `d`, `e`
,较大的警告为0。
请告知如何在没有警告的情况下按列名称进行过滤?
如果one_of()
中存在我要忽略的列,请忽略它,否则保留它。
答案 0 :(得分:0)
您可以使用
>>> from pathlib import Path
>>> str(Path(r"C:\WiNdOwS\SyStEm32\DeSkToP.iNi").resolve())
r'C:\Windows\System32\desktop.ini'
这将全局关闭警告消息以将其重新打开,您可以运行以下命令:
options(warn=-1)
不建议这样做,只是根据您的要求解决。
要仅对此代码禁止警告,可以使用Trycatch():
options(warn=0)
答案 1 :(得分:0)
我希望我的回答能解决您的问题,我使用了 select_if 函数,而不是使用select的辅助函数。 如果您想了解更多有关select_if的信息,请在RStudio控制台中键入?select_if 。
tibble(a = c(1,2), b = c(3,4), c = c(5,6)) %>% select_if(colnames(.) %in% c("a","c","d","e"))
谢谢!