如何在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 = "\\|"))