Как я могу разделить этот массив на столбцы в R - PullRequest
0 голосов
/ 28 октября 2019

Я хочу разделить этот массив на разные столбцы, используя символ "|"в качестве разделителя.

[-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]" ...

То есть одна координата для каждого столбца.

Ответы [ 2 ]

0 голосов
/ 28 октября 2019

Вы можете использовать strsplit для разделения строк на "|":

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 = "\\|"))
0 голосов
/ 28 октября 2019

замените | на \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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...