Я искал здесь решение, и, похоже, у меня ничего не работает, поэтому заранее прошу прощения, если это дублирующий вопрос. Если это так, и используемый пример также является примером, пожалуйста, дайте мне знать, где я мог бы искать. Это было нелегко для названия. Я заранее благодарю вас за то, что вы потратили на это время.
Проблема: У меня есть набор данных в 1 столбце и несколько сотен тысяч строк. Мне нужно создать 178 столбцов и сколько угодно строк.
Порядок предоставления данных - это порядок, в котором они должны оставаться.
Например, первые 178 строк данных задают все должна стать строкой 1. Следующие 178 столбцов данных должны стать строкой 2. Это продолжается до конца фрейма данных.
Приведенный ниже код создаст образец с буквами, который содержит 1000 строк. Он также содержит то, что я пробовал до сих пор.
Я чувствую, что я рядом, но результаты не те, что я ожидаю. Становится немного странно, когда данные превращаются в строку 3 в столбце новой строки. Это также становится странным, когда он проходит свои первые 178 столбцов. Он повторяет столбец 1 два раза подряд.
Любая помощь будет великолепной. Если необходимы дальнейшие разъяснения, пожалуйста, просто спросите. Однако, когда вы запустите код и посмотрите, где строка 1 превращается в строку 2, а где строка 2 превращается в строку 3, вы должны увидеть странные результаты.
Редактировать 1: Я делаю Нужно добавить, что это нужно будет в длинном формате, а не в широком. По сути, это должно быть в формате, который обеспечивает пример. Я прошу прощения за искажение в названии. Я изменил заголовок, чтобы удалить слово «матрица».
То, что я пробовал, и примеры данных:
rna = data.frame(sample(letters, size=1000, replace=TRUE))
x = 1
row = 1
y = 0
column = 1
for (i in 1:nrow(rna)) {
if (x < 178) {
rna$rowNum[i] = row
x = x + 1
} else {
row = row + 1
x = 1
}
if (y < 178) {
rna$colNum[i] = column
column = column + 1
y = y + 1
} else {
column = 1
y = 0
}
}