来自一部分字符串的子集数据 [英] Subset data from a part of string

查看:28
本文介绍了来自一部分字符串的子集数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下数据集:

dat2 <- read.table(header=TRUE, text="
ID  De  Ep  Ti  ID1
A1123    A117 121 100 11231
                   A1123MDN A108 C207 D110 E11232
                   A1124MDN A122 C207 D110 E11232
                   A1124MDN A117 C207 D110 E11232
                   A1124 A122 C208 D110 E11232
                   B1125MDN A108 C208 D110 E11232
                   B1125MDN A108 C208 D110 E11232
                   B1126MDN A122 C208 D110 E11233
                   C1126 A109 C208 D111 E11233
                   ")
dat2
        ID   De   Ep   Ti    ID1
1    A1123 A117  121  100  11231
2 A1123MDN A108 C207 D110 E11232
3 A1124MDN A122 C207 D110 E11232
4 A1124MDN A117 C207 D110 E11232
5    A1124 A122 C208 D110 E11232
6 B1125MDN A108 C208 D110 E11232
7 B1125MDN A108 C208 D110 E11232
8 B1126MDN A122 C208 D110 E11233
9    C1126 A109 C208 D111 E11233

我想根据第一列中的部分 MDN 对数据集进行子集化.冗长的代码是:

I want to subset the dataset based on part of a sting MDN in first columns. The lengthy code is:

mdn <- subset(dat2, ID=="A1123MDN"|ID=="A1124MDN"| ID=="B1125MDN"| ID=="B1126MDN")
mdn
        ID   De   Ep   Ti    ID1
2 A1123MDN A108 C207 D110 E11232
3 A1124MDN A122 C207 D110 E11232
4 A1124MDN A117 C207 D110 E11232
6 B1125MDN A108 C208 D110 E11232
7 B1125MDN A108 C208 D110 E11232
8 B1126MDN A122 C208 D110 E11233

数据集有 456,345 行.按照上述方式进行子集化是不可行的.

The data set has 456,345 rows. It is not feasible to subset by following the above way.

推荐答案

尝试使用 grep

dat2[grep("MDN",dat2$ID),]

或使用 grpl

subset(dat2, grepl("MDN",dat2$ID))

这篇关于来自一部分字符串的子集数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆