gpt4 book ai didi

r - 如何使用 grep 函数分隔 R 中具有通用名称的多个列?

转载 作者:行者123 更新时间:2023-12-04 12:29:55 26 4
gpt4 key购买 nike

对于以下数据集,我只想用 beta1 分隔列。

mydata
beta1_C1 beta2_C2 beta1_C2 beta2_C1 beta3_C1 beta4_C2 beta4_C1 beta21_C1 beta21_C2 beta10_C1
[1,] 1 9 17 25 33 41 49 57 65 73
[2,] 2 10 18 26 34 42 50 58 66 74
[3,] 3 11 19 27 35 43 51 59 67 75
[4,] 4 12 20 28 36 44 52 60 68 76
[5,] 5 13 21 29 37 45 53 61 69 77
[6,] 6 14 22 30 38 46 54 62 70 78
[7,] 7 15 23 31 39 47 55 63 71 79
[8,] 8 16 24 32 40 48 56 64 72 80

我正在使用以下代码,但 beta10 显示在我不想要的输出中。在我预期的数据中,我应该只有 beta1_C1beta1_C2 列。

 dat1=mydata[,grep("beta1",colnames(mydata))]
dat1
beta1_C1 beta1_C2 beta10_C1
[1,] 1 17 73
[2,] 2 18 74
[3,] 3 19 75
[4,] 4 20 76
[5,] 5 21 77
[6,] 6 22 78
[7,] 7 23 79
[8,] 8 24 80

感谢任何帮助。

最佳答案

如果您只是在当前模式中添加下划线 (_),它将解决共享数据的问题。

mydata[,grep("beta1_",colnames(mydata))]

但是,更具体地说,你可以这样做

mydata[,grep("^beta1_C\\d+",colnames(mydata))]

这将选择以“beta1_C”开头后跟数字的列。

关于r - 如何使用 grep 函数分隔 R 中具有通用名称的多个列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60294866/

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