编辑以进一步澄清要求 我在R中相当新,我在整理数据时遇到了障碍。
我目前的数据是这样的。
Data
1 AAA TEXT Here
2 ZX
3 YX
4 ****
5 BBB Text Here
6 AL
7 TP
8 XY
9 ******
10 CCC Text Here
11 PP
12 QV
13 ******
AAA,BBB,CCC就像我的'标识符',而***表示与标识符相关的行的结尾。在此示例输出中,我只想提取BBB以及后面的3行。我需要选择中间行并将我的表转换为这样:
Data
1 BBB Text Here
2 AL
3 TP
4 XY
你能帮帮忙吗?谢谢!
答案 0 :(得分:0)
嗯。您的数据存储方法不是我们任何人推荐的方法,但如果您编写的内容确实是您存储数据的方式,那么您可以使用this answer中列出的方法查找行匹配的行号你指定的标识符。
# Set up test 'identifier' value
WantedIdentifier = "BBB Text Here"
# Get matching row number
RowNo =
which(Text == WantedIdentifier, arr.ind=TRUE)[1]
# Return from that row to the third beyond
ReturnedText =
if(!is.na(RowNo)) data.frame(Data = Text[RowNo:(RowNo+3),]) else NA
# Value returned
> ReturnedText
Data
1 BBB Text Here
2 AL
3 TP
4 XY
测试数据设置
Text=
read.table(text = "Data
'AAA TEXT Here'
'ZX'
'YX'
'****'
'BBB Text Here'
'AL'
'TP'
'XY'
'******'
'CCC Text Here'
'PP'
'QV'
'******'", header = TRUE, stringsAsFactors = FALSE)