来自字符串一部分的子集数据
Subset data from a part of string
我有以下数据集:
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
的一部分对数据集进行子集化。冗长的代码是:
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 行。按照上述方式进行子集化是不可行的。
尝试使用 grep
dat2[grep("MDN",dat2$ID),]
或使用 grpl
subset(dat2, grepl("MDN",dat2$ID))
我有以下数据集:
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
的一部分对数据集进行子集化。冗长的代码是:
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 行。按照上述方式进行子集化是不可行的。
尝试使用 grep
dat2[grep("MDN",dat2$ID),]
或使用 grpl
subset(dat2, grepl("MDN",dat2$ID))