从字符串

时间:2015-06-08 18:45:54

标签: r delimiter

我正在努力解析一些困难的数据,只需删除单个空格。我的数据行看起来像下面的例子

[1] "  Class                                Dist   Quantity    Market   Taxable/$                        "
[2] " 4-2101 THIS LAND                     28       108.85    216797     6352.00                        "
[3] "99-9084 FIRE PROTECTION               9084       0.00         0       26.95                        "
[4] "99-9093 COUNTY VALLEY SOIL            9093       0.00         0     6352.00                        "

如果我可以通过删除单个空格来压缩带连字符的数字和描述,那么我可以使用read.table读取文本。

我怎样才能遍历行并用无空格替换单个空格?结果数据看起来像

[1] "  Class                                Dist   Quantity    Market   Taxable/$                        "
[2] " 4-2101THISLAND                     28       108.85    216797     6352.00                        "
[3] "99-9084FIREPROTECTION               9084       0.00         0       26.95                        "
[4] "99-9093COUNTYVALLEYSOIL            9093       0.00         0     6352.00                        "

2 个答案:

答案 0 :(得分:3)

您可以使用gsub命令。

data$Class <- gsub("\\s{1}(\\S)", "\\1", data$Class)

按照rawr的建议编辑。

答案 1 :(得分:0)

您也可以在不删除属于&#39; Class&#39;的单词之间的空格的情况下执行此操作。列。

("[^"]*"),?|([^,]+),?

数据

v1 <- gsub('^\\s+|\\s+$', '', v1)
v1[-1] <- gsub('(?<=[A-Za-z]|^\\b)\\s*(?=\\d+)', "'", v1[-1], perl=TRUE)
 read.table(text=v1, header=TRUE, stringsAsFactors=FALSE, check.names=FALSE)
 #                       Class Dist Quantity Market Taxable/$
 #1           4-2101 THIS LAND   28   108.85 216797   6352.00
 #2    99-9084 FIRE PROTECTION 9084     0.00      0     26.95
 #3 99-9093 COUNTY VALLEY SOIL 9093     0.00      0   6352.00