我有一个文本数据文件,可能会使用
以下是Stackoverflow上类似的帖子,可以定位最后一个句点:
除了上述帖子中的
以下是一个示例数据集及我希望实现的结果:
readLines
读取。每个字符串的初始部分都包含许多无意义的内容,后面是我需要的数据。无意义的内容和数据通常由三个点分隔开。我想在最后三个点之后拆分字符串,或者用某种标记替换最后三个点,告诉R将这三个点左侧的所有内容视为一列。以下是Stackoverflow上类似的帖子,可以定位最后一个句点:
R: Find the last dot in a string
然而,在我的情况下,有些数据具有小数点,因此仅定位最后一个句点是不够的。此外,我认为...
在R中具有特殊含义,这可能会使问题变得复杂。另一个潜在的复杂性是,有些点比其他点大。此外,在某些行中,其中一个三个点被逗号替换。除了上述帖子中的
gregexpr
外,我还尝试过使用gsub
,但无法找到解决方案。以下是一个示例数据集及我希望实现的结果:
aa = matrix(c(
'first string of junk... 0.2 0 1',
'next string ........2 0 2',
'%%%... ! 1959 ... 0 3 3',
'year .. 2 .,. 7 6 5',
'this_string is . not fine .•. 4 2 3'),
nrow=5, byrow=TRUE,
dimnames = list(NULL, c("C1")))
aa <- as.data.frame(aa, stringsAsFactors=F)
aa
# desired result
# C1 C2 C3 C4
# 1 first string of junk 0.2 0 1
# 2 next string ..... 2 0 2
# 3 %%%... ! 1959 0 3 3
# 4 year .. 2 7 6 5
# 5 this_string is . not fine 4 2 3
我希望这个问题不被认为太具体。文本数据文件是使用昨天我在R中读取MSWord文件的帖子中概述的步骤创建的。
有些行不包含无意义的字符或三个点,而只包含数据。但是,这可能会给后续的帖子带来一些复杂性。
感谢您的任何建议。