В R, как создать цикл для разделения столбцов в кадре данных - PullRequest
3 голосов
/ 06 июля 2010

В R я хотел бы создать цикл, который берет первые 3000 столбцов моего фрейма данных и записывает их в один файл, следующие 3000 столбцов в другой файл и так далее, и так далее, пока все столбцы не будут разделеныв качестве таких.Каков был бы лучший способ сделать это?Я понимаю, что теперь есть функции isplit и итераторы, доступные через CRAN, но я действительно не уверен, как это сделать.Любые предложения, пожалуйста?

Ответы [ 2 ]

9 голосов
/ 06 июля 2010

Вы можете попробовать что-то вроде:

library(plyr)
max.col <- ncol(x)
l_ply(seq(1, max.col, by=3000), function(i) 
    write.table(x[,i:min(i+2999, max.col)], file=paste("i", i, sep="-"))
)
1 голос
/ 07 июля 2010

Не знаю, зачем вам загружать plyr ... при условии, что ваш фрейм данных df ... (украл разумное использование min () из ответа Шейна)

maxCol <- ncol(df)
for (i in seq(1, maxCol, by 3000)) {
     write.table(df[,i:min(i+2999, maxCol)], "i")
}

Возможно, вы захотитеОтредактируйте приведенную выше команду write.table, чтобы добавить ее в предпочитаемом формате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...