[英]string array to data frame conversion in r
我已经在字符串变量(k)中获得了此数组,并希望将其转换为r中的数据帧。 as.array(k)不会对其进行转换。 做这个的最好方式是什么。 另外,考虑到将来会有嵌套数组要处理。
places = [[\"Abtenau\", \"Abtenau\", 767, 52, 3.0000],[\"Achenkirch\", \"Achenkirch am Achensee\", 248, 61, 6.0000],[\"Adelharz\", \"Adelharz\", 47, 46, 2.0000],[\"Alpbach\", \"Alpbachtal\", 2629, 89, 2.0000]]
一个选项将是jsonlite
转换为matrix
,然后将其更改为data.frame
并retype
library(jsonlite)
library(hablar)
library(dplyr)
fromJSON(places) %>%
as.data.frame %>%
retype
# A tibble: 4 x 5
# V1 V2 V3 V4 V5
# <chr> <chr> <int> <int> <int>
#1 Abtenau Abtenau 767 52 3
#2 Achenkirch Achenkirch am Achensee 248 61 6
#3 Adelharz Adelharz 47 46 2
#4 Alpbach Alpbachtal 2629 89 2
或者使用正则表达式删除方括号后,可以使用base R
来完成此操作
read.csv(text = gsub('[][]|"', "", gsub("(?<=\\]),(?=\\[)", "\n",
places, perl = TRUE)), header = FALSE, stringsAsFactors = FALSE)
# V1 V2 V3 V4 V5
#1 Abtenau Abtenau 767 52 3
#2 Achenkirch Achenkirch am Achensee 248 61 6
#3 Adelharz Adelharz 47 46 2
#4 Alpbach Alpbachtal 2629 89 2
places <- "[[\"Abtenau\", \"Abtenau\", 767, 52, 3.0000],[\"Achenkirch\", \"Achenkirch am Achensee\", 248, 61, 6.0000],[\"Adelharz\", \"Adelharz\", 47, 46, 2.0000],[\"Alpbach\", \"Alpbachtal\", 2629, 89, 2.0000]]"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.