2017-02-15 45 views
0

Я просмотрел довольно некоторые форумы в Интернете, но не смог найти четкого ответа на мою проблему, поэтому я решил опубликовать его здесь. Программа, которую я использую, является R.Построение векторов с использованием (вложенных) циклов в R

Следующая проблема заключается в том, что я не могу найти решение. Мне поручено построить вектор (1,2,2,3,3,3 ..., 10, ..., 10), используя вложенный цикл (так что no rep()). Пока мне удалось создать список всех элементов, но не удалось преобразовать его в нужный вектор. Я пробовал некоторые методы, такие как преобразование данных в матрицу и их перенос и т. Д.

До сих пор ни один метод не работал, возможно, кто-то с более глубоким пониманием этого вопроса мог мне помочь.

Это то, что я получил до сих пор:

for (i in 1:10){ 
    for (j in 1:10) 
    if (j<=i) 
    { 
     x = c(i) 
    print(x) 
    } 
} 

, который дает мне:

[1] 1 
[1] 2 
[1] 2 
[1] 3 
[1] 3 
[1] 3 
[1] 4 
[1] 4 
[1] 4 
[1] 4 
[1] 5 
[1] 5 
[1] 5 
[1] 5 
[1] 5 
[1] 6 
[1] 6 
[1] 6 
[1] 6 
[1] 6 
[1] 6 
[1] 7 
[1] 7 
[1] 7 
[1] 7 
[1] 7 
[1] 7 
[1] 7 
[1] 8 
[1] 8 
[1] 8 
[1] 8 
[1] 8 
[1] 8 
[1] 8 
[1] 8 
[1] 9 
[1] 9 
[1] 9 
[1] 9 
[1] 9 
[1] 9 
[1] 9 
[1] 9 
[1] 9 
[1] 10 
[1] 10 
[1] 10 
[1] 10 
[1] 10 
[1] 10 
[1] 10 
[1] 10 
[1] 10 
[1] 10 

Заранее спасибо!

+0

насчет 'репутации (1: 10, время = 1: 10) '? – NicE

+0

'x = c (x, i)' вместо 'x = c (i)' – user31264

+0

Спасибо за быстрые ответы @NicE Мне не разрешено использовать rep(); – Anderson

ответ

0

Если результат сохраняется в векторе, вместо его печати, является нерешенной проблемой, это может быть сделано таким образом:

result <- vector(mode = "integer") 
k <- 1 
for (i in 1:10){ 
    for (j in 1:10) 
    if (j<=i) 
    { 
     result[k] = c(i) 
     k <- k+1 
    } 
} 
head(result) 
+1

Вы должны добавить описание своего ответа. –

+0

Добро пожаловать в переполнение стека! Хотя этот фрагмент кода приветствуется и может оказать некоторую помощь, было бы [значительно улучшено, если бы оно включало объяснение] (// meta.stackexchange.com/q/114762) * как * и * почему * это решает проблему , Помните, что вы отвечаете на вопрос читателей в будущем, а не только на человека, который спрашивает сейчас! Пожалуйста, отредактируйте свой ответ, чтобы добавить объяснение, и укажите, какие ограничения и допущения применяются. –