如何删除“|”不从 R 中的列表中留下 Space

How to Remove "|" Without Leaving Space from the List in R

我正在使用 pdf 工具通过首先转换为 png 从扫描文件中提取数据。由于 pdf 工具从 png 读取,因此无缘无故出现了一些标点符号。我可以删除其中的大部分,除了“|”。

这是我的数据:

c("| January 2,310,501 2,342,654 + 14%", "| February 2,221,036 2,316,278 + 4.3%", )

我希望我的数据可以是这样的:

c("January 2,310,501 2,342,654 + 14%", "February 2,221,036 2,316,278 + 4.3%",)

从附图中可以看出,“|”改变了我的数据结构,我不能简单地从第二列读取数据。我想要的是删除“|”元素。然后其余的元素可以向前移动。您还可以找到附加的文件。谢谢您的帮助。

您可以使用 lapply 删除 "|" 的元素。

lapply(test2, function(x) x[x != '|'])

#[[1]]
#[1] "January" "test"   

#[[2]]
#[1] "February"  "2, 602,33"

同样,在purrr

中使用map
purrr::map(test2,  ~.x[.x != '|'])

对于更新的数据,我们可以使用 gsub

test <- trimws(gsub('\|', '', test))
test

# [1] "January 2,310,501 2,342,654 + 14%"        "February 2,221,036 2,316,278 + 4.3%"     
# [3] "March 2,602,503 2,571,661 ( -1.2% )"      "April 2,471,788 2,485,989 i 0.6%"        
# [5] "May 2,418,547 2,512,922 + 3.9%"           "June 2,412,882 2,430,232 + 0.7%"         
# [7] "July 2,462,907 2,535,594 + 3.0%"          "August 2,526,211 2,638,753 + 4.5%"       
# [9] "September 2,434,132 2,480,466 * + 1.9%"   "October 2,552,215 2,642,990 * + 3.6%"    
#[11] "November 2,306,106 2,428,806 + 5.3%"      "December _ 2,283,294 2,250,016 ( -1.5% )"

数据

test2 <- list(c('|', 'January', 'test'), c('February', '2, 602,33', '|'))

我们可以使用setdiff

lapply(test2, setdiff, "|")
#[[1]]
#[1] "January" "test"   

#[[2]]
#[1] "February"  "2, 602,33"

数据

test2 <- list(c('|', 'January', 'test'), c('February', '2, 602,33', '|'))