gpt4 book ai didi

R:删除空格 + 分隔符

转载 作者:行者123 更新时间:2023-12-04 09:35:54 30 4
gpt4 key购买 nike

我对 R 语言相当陌生。所以我有这个包含以下内容的向量:

> head(sampleVector)

[1] "| txt01 | 100 | 200 | 123.456 | 0.12345 |"
[2] "| txt02 | 300 | 400 | 789.012 | 0.06789 |"

我想提取线条并将每个线条分成单独的部分,每部分都有一个数据值。
我想得到一个列表 resultList 最终会打印出以下内容:
> head(resultList)`

[[1]]`
[1] "" "txt01" "100" "200" "123.456" "0.12345"

[[2]]`
[1] "" "txt02" "300" "400" "789.012" "0.06789"

我正在努力使用 strsplit() 符号,到目前为止我已经尝试并获得了以下代码:
resultList  <- strsplit(sampleVector,"\\s+[|] | [|]\\s+ | [\\s+]")`          
#would give me the following output`

# [[1]]`
# [1] "| txt01" "100" "200" "123.456" "0.12345 |"

无论如何我可以得到一个 strsplit 调用的输出?我猜我区分分隔符+空格的符号是错误的。对此的任何帮助都会很好。

最佳答案

这是一种方法。这首先使用 | 从向量中删除 gsub 。然后它在空格(或任意数量的空格)上使用 strsplit 。这样可能会容易一些。

strsplit(gsub("|", "", sampleVector, fixed=TRUE), "\\s+")
# [[1]]
# [1] "" "txt01" "100" "200" "123.456" "0.12345"
#
# [[2]]
# [1] "" "txt02" "300" "400" "789.012" "0.06789"

这是使用 scan 的一个有趣的替代方案,它可能有用,而且速度可能相当快。
lapply(sampleVector, function(y) {
s <- scan(text = y, what = character(), sep = "|", quiet = TRUE)
(g <- gsub("\\s+", "", s))[-length(g)]
})
# [[1]]
# [1] "" "txt01" "100" "200" "123.456" "0.12345"
#
# [[2]]
# [1] "" "txt02" "300" "400" "789.012" "0.06789"

关于R:删除空格 + 分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26477470/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com