簡體   English   中英

R中的字符串數組到數據幀的轉換

[英]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.frameretype

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM