Проблема при создании основного цикла в одном .csv - PullRequest
0 голосов
/ 18 января 2019

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

Я создал код, необходимый для организации первого ряда так, как я хотел. Теперь я пытаюсь создать цикл, чтобы сделать это для всех строк в оригинале. Вот код, который я создал:

Строки 1: 3, в основном, заголовки и в конечном итоге удаляются, но еще не потому, что служат первоначальной цели. Для окончательной электронной таблицы необходим только ряд 5.

    New.Data <-data.frame(t(Original.Data[c(1:3,5),]))

    colnames(New.Data) <-c("patid","Day","Week","SD")
    New.Data[,1] <- New.Data[1,4]

    New.Data$Day <- as.numeric(as.character(New.Data$Day))
    New.Data$SD <- as.numeric(as.character(New.Data$SD))
    New.Data$Week <- as.numeric(as.character(New.Data$Week))

    New.Data <- New.Data[ which(New.Data$Day<=New.Data[3,4]),]

В этой последней строке создается базовая электронная таблица, куда я переношу все данные. «База» уже была создана ранее.

    Final.Base <-bind_rows(Base,New.Data)

Моя идея заключается в том, чтобы сделать что-то вроде, например, именования New.Data в качестве New.Data1 и создания цикла, создающего несколько New.Data для каждой строки и в основном связывающего их все в Final.Base. Таким образом, строка 1 (или строка 5 на самом деле) создается в New.Data 1, а строка 2 - в New.Data 2 и т. Д.

Также в моей первой строке кода:

    New.Data <-data.frame(t(Original.Data[c(1:3,5),]))

Единственное, что, по моему мнению, нужно изменить, - это последнее число "5". Это должно было бы увеличиться на один в каждой итерации цикла.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 18 января 2019

Я не совсем уверен, что вы хотите сделать. Немного данных было бы хорошо. Но вот то, что звучит как то, что вы спрашиваете. Он берет столбец и привязывает его к следующему столбцу и так далее, чтобы дать вам вектор суммированных значений "

mtcars

out <- c()
for(i in 1:ncol(mtcars)){
  intermediate <- mtcars[,i]

  out <- c(out, intermediate)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...