gpt4 book ai didi

r - 如何选择包含某些字符串/字符的特定列?

转载 作者:行者123 更新时间:2023-12-04 13:49:24 24 4
gpt4 key购买 nike

我有这个数据框:

df1 <- data.frame(a = c("correct", "wrong", "wrong", "correct"),
b = c(1, 2, 3, 4),
c = c("wrong", "wrong", "wrong", "wrong"),
d = c(2, 2, 3, 4))

a b c d
correct 1 wrong 2
wrong 2 wrong 2
wrong 3 wrong 3
correct 4 wrong 4

并只选择带有字符串“正确”或“错误”的列(即df1中的b和d列),这样我就得到了这个数据框:
df2 <- data.frame(a = c("correct", "wrong", "wrong", "correct"),
c = c("wrong", "wrong", "wrong", "wrong"))

a c
1 correct wrong
2 wrong wrong
3 wrong wrong
4 correct wrong

我可以使用dplyr来做到这一点吗?如果没有,我可以使用什么功能来做到这一点?我给出的示例很简单,因为我可以这样做(dplyr):
select(df1, a, c)

但是,在我的实际数据框中,我大约有700个变量/列和几百个包含字符串“正确”或“错误”的列,但我不知道变量/列的名称。

关于如何快速执行此操作的任何建议?非常感谢!

最佳答案

您可以使用基本的R Filter,它将对df1的每个列进行操作,并将所有满足逻辑测试的列保留在函数中:

Filter(function(u) any(c('wrong','correct') %in% u), df1)
# a c
#1 correct wrong
#2 wrong wrong
#3 wrong wrong
#4 correct wrong

您还可以使用 grepl:
Filter(function(u) any(grepl('wrong|correct',u)), df1)

关于r - 如何选择包含某些字符串/字符的特定列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29865361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com