Я пытаюсь создать функцию для просмотра CSV-файлов, загруженных в виде матриц (один за другим, когда я использую функцию для них), которая добавит 19-й, 20-й, 21-й, 22-й, 23-й и 24-й столбцы. У всех этих матриц будет 18 столбцов, поэтому я начинаю с 19 столбца, чтобы не стереть предыдущие данные. Сначала следует запросить данные для 19-го и 22-го столбцов (в виде чисел), а затем вычислить данные для остальных столбцов. Я продолжаю получать сообщение «новые столбцы оставят дыры после существующих столбцов».
Я пытался переключиться с простой попытки присвоить matrix [, 19] на cbind (matrix, c ("имя столбца 19", "имя столбца 20" и т. Д.), И ни одна из них не работает.
func<- function(matrix){
cbind(matrix, c("name19","name20", "name21", "name22", "name23", "name24"))
matrix[,19] <- as.numeric(readline(prompt = "enter number "))
matrix[,22] <- as.numeric(readline(prompt = "enter number "))
matrix[x,20] <- 1.25*(matrix$colname10[x]/4)
matrix[x,21] <- matrix[x,20]/(15*matrix[x,19])
matrix[x,23] <- 1.25*(matrix$colname13[x]/4)
matrix[x,24] <- matrix[x,23]/(15*matrix[x,22])
}
func(matrixwith18cols)
Это дает мою ошибку
Вместо того, чтобы добавлять новые столбцы и делать математические расчеты для наблюдений, о которых я их просил, и добавлять новые наблюдения, я получаю
Error in `[<-.data.frame`(`*tmp*`, , 22, value = 1) :
new columns would leave holes after existing columns
в консоли (после ввода в 1 как оба запроса)