如何在R中将此数组划分为列

如何在R中将此数组划分为列,r,R,我想使用字符“|”作为分隔符将此数组划分为不同的列 [-8.618643,41.141412]|[-8.618499,41.141376]|[-8.620326,41.14251]|[-8.622153,41.143815]|[-8.623953,41.144373]|[-8.62668,41.144778]|[-8.627373,41.144697]|[-8.630226,41.14521]|[-8.632746,41.14692]|[-8.631738,41.148225]|[-8.6299

我想使用字符“|”作为分隔符将此数组划分为不同的列

[-8.618643,41.141412]|[-8.618499,41.141376]|[-8.620326,41.14251]|[-8.622153,41.143815]|[-8.623953,41.144373]|[-8.62668,41.144778]|[-8.627373,41.144697]|[-8.630226,41.14521]|[-8.632746,41.14692]|[-8.631738,41.148225]|[-8.629938,41.150385]|[-8.62911,41.151213]|[-8.629128,41.15124]|[-8.628786,41.152203]|[-8.628687,41.152374]|[-8.628759,41.152518]|[-8.630838,41.15268]|[-8.632323,41.153022]|[-8.631144,41.154489]|[-8.630829,41.154507]|[-8.630829,41.154516]|[-8.630829,41.154498]|[-8.630838,41.154489]
我想把这样的东西分成不同的栏目

"[-8.618643,41.141412]" "[-8.618499,41.141376]" "[-8.620326,41.14251]" "[-8.622153,41.143815]" "[-8.623953,41.144373]" "[-8.62668,41.144778]" ...

也就是说,每列对应一个坐标。

|
替换为
\n
,然后阅读文本。 在本例中,我使用
data.table
fread()
读取行,使用
sep=“”
按原样读取每一行

library(data.table)

str = "[-8.618643,41.141412]|[-8.618499,41.141376]|[-8.620326,41.14251]|[-8.622153,41.143815]|[-8.623953,41.144373]|[-8.62668,41.144778]|[-8.627373,41.144697]|[-8.630226,41.14521]|[-8.632746,41.14692]|[-8.631738,41.148225]|[-8.629938,41.150385]|[-8.62911,41.151213]|[-8.629128,41.15124]|[-8.628786,41.152203]|[-8.628687,41.152374]|[-8.628759,41.152518]|[-8.630838,41.15268]|[-8.632323,41.153022]|[-8.631144,41.154489]|[-8.630829,41.154507]|[-8.630829,41.154516]|[-8.630829,41.154498]|[-8.630838,41.154489]"

data.table::fread(text = gsub( "\\|", "\n", str ), sep = "", header = FALSE )

#                       V1
# 1: [-8.618643,41.141412]
# 2: [-8.618499,41.141376]
# 3:  [-8.620326,41.14251]
# 4: [-8.622153,41.143815]
# 5: [-8.623953,41.144373]
# 6:  [-8.62668,41.144778]
# 7: [-8.627373,41.144697]
# 8:  [-8.630226,41.14521]
# 9:  [-8.632746,41.14692]

您可以使用
strsplit
以“|”分隔字符串:

s
s <- "[-8.618643,41.141412]|[-8.618499,41.141376]|[-8.620326,41.14251]|[-8.622153,41.143815]|[-8.623953,41.144373]|[-8.62668,41.144778]|[-8.627373,41.144697]|[-8.630226,41.14521]|[-8.632746,41.14692]|[-8.631738,41.148225]|[-8.629938,41.150385]|[-8.62911,41.151213]|[-8.629128,41.15124]|[-8.628786,41.152203]|[-8.628687,41.152374]|[-8.628759,41.152518]|[-8.630838,41.15268]|[-8.632323,41.153022]|[-8.631144,41.154489]|[-8.630829,41.154507]|[-8.630829,41.154516]|[-8.630829,41.154498]|[-8.630838,41.154489]"
v <- unlist(strsplit(s,split = "\\|"))