【发布时间】:2019-01-31 12:41:14
【问题描述】:
这似乎是一个应该在 stackoverflow/google 中的问题,但它不是(或者至少我找不到它)所以我会在这里问它:
可重现的例子:
colnames(df)
"Z1" "Z2" "Z3" "GV1" "GV2" "GV3" "GV4" "GV5" "GV6" "GV7" "GV8" "GV9" "GVY" "EN1" "EN2" "EN3" "EN4" "EN5" "EN6" "EN7" "EN8" "EN9" "ENY" "PV1" "PV2" "PV3" "PV4" "PV5" "PV6" "PV7" "PVY"
我正在尝试理解/执行下一个代码:
colnames(df[substr(colnames(df),start=1,stop=2) == "GV" & substr(colnames(df),start=3,stop=3) != "Y"])
使用 magrittr 管道运算符 %>%,因为我喜欢将它用于更易读的代码(这可行):
library(magrittr)
df %>%
colnames %>%
substr(start=1,stop=2) == "GV"
但是,这样做没有意义(这不起作用):
df %>%
colnames %>%
substr(start=1,stop=2) == "GV" & substr(colnames(df),start=3,stop=3) != "Y"]
有什么想法吗?
【问题讨论】:
-
你的最终目标是什么?
-
请在您的问题中提供minimal reproducible example!
-
您是否尝试过将
substr(colnames(df),start=3,stop=3) != "Y"中的colnames(df)替换为.(以及删除最后的])? -
最终目标是简化代码。用magrittr代码做第一行代码是最终目标。
-
你试过
select()与contains()或starts_with()的组合吗?
标签: r conditional magrittr