добавить непостоянные векторы во фрейм данных, используя rbind - PullRequest
0 голосов
/ 15 мая 2018

у меня есть непостоянные векторы, которые мне нравятся, чтобы объединить их в один фрейм данных,

я использую следующий цикл для создания этих векторов

for (i in campagin_id){
h <- basicHeaderGatherer()
doc <- getURI(paste0(automations_url,
                     "/",i,
                     "?apikey=",accessToken,
                     "&count=",pagination), headerfunction = h$update)

assign(paste0('web_id',i),c(i,as.integer(substring(h$value()[as.integer(grep(SearchTerm, h$value()))],
                             as.integer(regexpr(SearchTerm,h$value()[as.integer(grep(SearchTerm, h$value()))]))+nchar(SearchTerm)-1,as.integer(regexpr(SearchTerm,h$value()[as.integer(grep(SearchTerm, h$value()))]))+nchar(SearchTerm)+StringLength-2))))
}

я получил список векторов имне нравится маркировать их с помощью rbind что-то вроде этого

rbind(web_id0f09cc8ddd,web_id18a71f70a8)

проблема в том, что я не знаю, сколько векторов я получу, но я знаю только начало имени вектора, поэтому я пытаюсьчтобы выполнить следующий цикл

for (i in campagin_id) {
web_id <- do.call("rbind",list(paste0('web_id',i)))
}

, но он вставляет только один вектор во фрейм данных

кампания_id содержит все значения i, которые мне нужны в определенное время

Спасибо

1 Ответ

0 голосов
/ 15 мая 2018

do.call - правильная идея, но rbind - медленная операция. Вы должны добавлять свои векторы в список по одному, а затем делать один rbind в конце, что-то вроде этого (непроверенный, очевидно, поскольку пример не воспроизводим, но он должен дать вам идея):

result_list = list(length = length(campagin_id))
for (i in campagin_id) {
    h <- basicHeaderGatherer()
    doc <- getURI(
        paste0(
            automations_url,
            "/",
            i,
            "?apikey=",
            accessToken,
            "&count=",
            pagination
        ),
        headerfunction = h$update
    )

    result_list[[i]] = c(i, as.integer(
        substring(
            h$value()[as.integer(grep(SearchTerm, h$value()))],
            as.integer(regexpr(SearchTerm, h$value()[as.integer(grep(SearchTerm, h$value()))])) +
                nchar(SearchTerm) - 1,
            as.integer(regexpr(SearchTerm, h$value()[as.integer(grep(SearchTerm, h$value()))])) +
                nchar(SearchTerm) + StringLength - 2
        )
    ))
}

results = do.call(rbind, result_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...