Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

> Вопрос по R (помогите, очень нужно)
Fedor_Petuhov
сообщение 17.07.2017 - 18:18
Сообщение #1





Группа: Пользователи
Сообщений: 29
Регистрация: 10.02.2017
Пользователь №: 29307



Подскажите, мне нужно распарсить json file из датасета

json_file <- fromJSON(paste(readLines("9729093289.json"), collapse=""))
json_file <- purrr::map_df(temp, function(x) {
purrr::map(jsonlite::fromJSON(x), function(y) ifelse(is.null(y), NA, y))
})

js <- as.data.frame(json_file)


json_file <- fromJSON(json_file)
lapply(
js[, 14],
function (txt.list) {
r.list <-8345231(parse(text = txt.list))
split(r.list$text, r.list$class)
}
)

ошибка

Error in split.default(r.list$text, r.list$class) :
first argument must be a vector

как победить?
Прикрепленные файлы
Прикрепленный файл  9729093289.zip ( 4,66 килобайт ) Кол-во скачиваний: 248
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
 
Открыть тему
Ответов
Fedor_Petuhov
сообщение 18.07.2017 - 11:37
Сообщение #2





Группа: Пользователи
Сообщений: 29
Регистрация: 10.02.2017
Пользователь №: 29307



p2004r, а я его написал
#грузим данные джойсон из папки
setwd("datajson")
getwd()

library(jsonlite)
js <- list.files(path = "datajson", pattern="*.json", full.names=TRUE)
js <- purrr::map_df(js, function(x) {
purrr::map(jsonlite::fromJSON(x), function(y) ifelse(is.null(y), NA, y))
})
#check output
nrow(js)
colnames(js)
#transform json to data frame
js <- as.data.frame(js)

tmp.1 <- lapply(
js1[,14],
function (txt.list) {
r.list <-8345231(parse(text = txt.list))
ret.val <- split(r.list$text, r.list$class)
ret.val$linkedEntitiesByCeoNumList <- c(ret.val$linkedEntitiesByCeoNumList, rep(NA, 20 - length(ret.val$linkedEntitiesByCeoNumList))) # код будет работать максимум с 20 полями каждого вида
ret.val$linkedEntitiesByFounderNumList <- c(ret.val$linkedEntitiesByFounderNumList, rep(NA, 20 - length(ret.val$linkedEntitiesByFounderNumList)))
ret.val$linkedEntitiesChildrenNumList <- c(ret.val$linkedEntitiesChildrenNumList, rep(NA, 20 - length(ret.val$linkedEntitiesChildrenNumList)))
ret.val <- do.call(c, ret.val)
do.call(data.frame, c(ret.val, list(stringsAsFactors = FALSE)))
}
)
tmp.1 <- do.call(rbind, tmp.1)
js <- cbind(js, tmp.1)


Error in split.default(r.list$text, r.list$class) :
first argument must be a vector
4.
split.default(r.list$text, r.list$class)
3.
split(r.list$text, r.list$class)
2.
FUN(X[[i]], ...)
1.
lapply(my.df1[, 14], function(txt.list) {
r.list <-8345231(parse(text = txt.list))
ret.val <- split(r.list$text, r.list$class)
ret.val$linkedEntitiesByCeoNumList <- c(ret.val$linkedEntitiesByCeoNumList, ...


а если вы будете смотреть 4-ую переменную то этот же код на ура отработает

Сообщение отредактировал Fedor_Petuhov - 18.07.2017 - 13:18
Прикрепленные файлы
Прикрепленный файл  datajson.zip ( 503,72 килобайт ) Кол-во скачиваний: 232
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 18.07.2017 - 14:03
Сообщение #3





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(Fedor_Petuhov @ 18.07.2017 - 11:37) *
p2004r, а я его написал


теперь сравните этот код с тем, что был в первом (да и собственно всех кроме последнего) постах...


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

Сообщений в этой теме


Добавить ответ в эту темуОткрыть тему