首页 > 解决方案 > 将两个连续空白行之间的某些行提取到R中的单个列

问题描述

我是 R 的初学者。我有一张只有一列但有很多行的表格。我需要将两个连续空白行之间的某些行提取到单个列中。或者需要在两个不同行的两个字符串之间提取行。我不知道该怎么做。先感谢您。

标签: r

解决方案


欢迎来到 Stack Exchange 并感谢您的帖子。但是,我建议阅读Minimal reproducible & Verifiable exampleHow to ask post。您将显着增加获得答案的概率。

要在两个字符串之间对列进行子集化,您可以使用以下方法(gsubdata.frame子集化):

df <- data.frame(foo = c("X","", "A", "B", "C", "D", "A", "", "E"), stringsAsFactors = FALSE)
df
#    foo
# 1   X
# 2    
# 3   A
# 4   B
# 5   C
# 6   D
# 7   A
# 8    
# 9   E

# empty string
empty_between <- grep("^$", df$foo)
df[(empty_between[1] + 1):(empty_between[2] - 1), , drop = FALSE]
#    foo
# 3   A
# 4   B
# 5   C
# 6   D
# 7   A

# between two strings (in this case "A")
string_between <- grep("^A$", df$foo)
df[(string_between[1] + 1):(string_between[2] - 1), , drop = FALSE]
#    foo
# 4   B
# 5   C
# 6   D

推荐阅读