2017-12-16 1 views
0

의 여러 열로 목록을 나누면 json 파일의 목록이 있습니다. 여기에 열 웹 사이트의 예입니다내 데이터 집합의 WEBSITE 열에서 R

> dataset$WEBSITE[[1]]) 
[1] "list(Headers = list(MaxTopicsRootDomain = 30, MaxTopicsSubDomain = 20, MaxTopicsURL = 10, TopicsCount = 3), Data = list(ItemNum = 0, Item = \"https://mywebsite.com/\", ResultCode = \"OK\", Status = \"Found\", ExtBackLinks = 1398, RefDomains = 452, AnalysisResUnitsCost = 1398, ACRank = 4, ItemType = 3, IndexedURLs = 1, GetTopBackLinksAnalysisResUnitsCost = 5000, DownloadBacklinksAnalysisResUnitsCost = 25000, DownloadRefDomainBacklinksAnalysisResUnitsCost = 25000, RefIPs = 323, \n RefSubNets = 273, RefDomainsEDU = 0, ExtBackLinksEDU = 0, RefDomainsGOV = 0, ExtBackLinksGOV = 0, RefDomainsEDU_Exact = 0, ExtBackLinksEDU_Exact = 0, RefDomainsGOV_Exact = 0, ExtBackLinksGOV_Exact = 0, CrawledFlag = \"True\", LastCrawlDate = \"2017-10-05\", LastCrawlResult = \"HTTP_404_NotFound\", RedirectFlag = \"False\", FinalRedirectResult = \"\", OutDomainsExternal = \"5\", OutLinksExternal = \"11\", OutLinksInternal = \"162\", OutLinksPages = \"1\", LastSeen = \"\"... <truncated> 

> dataset$WEBSITE[[2]]) 
[2] "list(Headers = list(MaxTopicsRootDomain = 30, MaxTopicsSubDomain = 20, MaxTopicsURL = 10, TopicsCount = 3), Data = list(ItemNum = 0, Item = \"http://www.website.uk\", ResultCode = \"OK\", Status = \"Found\", ExtBackLinks = 254, RefDomains = 76, AnalysisResUnitsCost = 254, ACRank = 9, ItemType = 3, IndexedURLs = 1, GetTopBackLinksAnalysisResUnitsCost = 5000, DownloadBacklinksAnalysisResUnitsCost = 25000, DownloadRefDomainBacklinksAnalysisResUnitsCost = 25000, RefIPs = 75, RefSubNets = 56, \n RefDomainsEDU = 0, ExtBackLinksEDU = 0, RefDomainsGOV = 0, ExtBackLinksGOV = 0, RefDomainsEDU_Exact = 0, ExtBackLinksEDU_Exact = 0, RefDomainsGOV_Exact = 0, ExtBackLinksGOV_Exact = 0, CrawledFlag = \"True\", LastCrawlDate = \"2017-12-14\", LastCrawlResult = \"DownloadedSuccessfully\", RedirectFlag = \"False\", FinalRedirectResult = \"\", OutDomainsExternal = \"2\", OutLinksExternal = \"2\", OutLinksInternal = \"19\", OutLinksPages = \"1\", LastSeen = \"\", Title = \"Dedic... <truncated> 

> dataset$WEBSITE[[3]]) 
[3] "list(Headers = list(MaxTopicsRootDomain = 30, MaxTopicsSubDomain = 20, MaxTopicsURL = 10, TopicsCount = 3), Data = list(ItemNum = 0, Item = \"http://www.website.uk\", ResultCode = \"OK\", Status = \"Found\", ExtBackLinks = 254, RefDomains = 76, AnalysisResUnitsCost = 254, ACRank = 9, ItemType = 3, IndexedURLs = 1, GetTopBackLinksAnalysisResUnitsCost = 5000, DownloadBacklinksAnalysisResUnitsCost = 25000, DownloadRefDomainBacklinksAnalysisResUnitsCost = 25000, RefIPs = 75, RefSubNets = 56, \n RefDomainsEDU = 0, ExtBackLinksEDU = 0, RefDomainsGOV = 0, ExtBackLinksGOV = 0, RefDomainsEDU_Exact = 0, ExtBackLinksEDU_Exact = 0, RefDomainsGOV_Exact = 0, ExtBackLinksGOV_Exact = 0, CrawledFlag = \"True\", LastCrawlDate = \"2017-12-14\", LastCrawlResult = \"DownloadedSuccessfully\", RedirectFlag = \"False\", FinalRedirectResult = \"\", OutDomainsExternal = \"2\", OutLinksExternal = \"2\", OutLinksInternal = \"19\", OutLinksPages = \"1\", LastSeen = \"\", Title = \"Dedic... <truncated> 

내 데이터 세트는 다음과 같습니다

COLOR  | SIZE  | WEBSITE 
Blue  | 13456  | list(Headers = list(MaxTopicsRootDomain = 30, MaxTopicsSubDomain = 20, MaxTopicsURL = 10 
Green  | 17487  | list(Headers = list(MaxTopicsRootDomain = 30, MaxTopicsSubDomain = 20, MaxTopicsURL = 10, 
Red   | 65438  | list(Headers = list(MaxTopicsRootDomain = 30, MaxTopicsSubDomain = 20, MaxTopicsURL = 10, To 

내 목표는 내 데이터 세트는 다음과 같이하기 위해 전용 컬럼에 각 JSON 노드를 설정하는 것입니다 :

COLOR  | SIZE  | MaxTopicsRootDomain | MaxTopicsSubDomain | MaxTopicsURL 
Blue  | 13456  | 30     | 20     | 10 
Green  | 17487  | 30     | 20     | 10 
Red   | 65438  | 30     | 20     | 10 

나는 방법을 시도,하지만 난 내가 ... 올바른 방법에 확신하지

dataset$WEBSITE <- as.character(dataset$WEBSITE) #character needed for a strsplit() 
hello <- strsplit(dataset$WEBSITE, split = ",") 
hello <- data.frame(COLOR = rep(dataset$Color, 
          sapply(hello, length)), 
          WEBSITE = unlist(hello)) 

도움을 주시면 매우 감사드립니다!

+0

재현 가능한 사례를 게시하면 도움을받을 가능성이 더 큽니다. 즉,'jsonlite :: flatten' 함수를 보길 원할 것입니다. – A5C1D2H2I1M1N2O1R2T1

답변

0

마침내 anwser를 찾는다.

아마 완벽하지는 않지만 작동합니다!

dataset_2 <- do.call(rbind, dataset$WEBSITE) 
dataset_2 <- cbind(dataset[c("COLOR")], dataset_2) 
dataset <- merge(dataset,dataset_2,by="COLOR") 
dataset <- unique (dataset) 
-1

purrr 및 map_df를 사용하면 효과가 있습니다. 하지만 난 지금 내 노트북에 없어.

관련 문제