У меня есть матрица и векторКак случайным образом обменять столбцы внутри функции?
set.seed(1) # I added this to have a reproducible values
X <- matrix(rexp(200, rate=.1), ncol=20)
Y <- matrix(rexp(10, rate=.1), ncol=1)
Затем я случайным образом выбрать 5 из столбцов X Как @Laterow предложил # выбрать 5 случайных столбцы из X температуры < - образец (Ncol (Х), 5) X1 < - X [, температура]
Тогда я объединить X1 с моим Y
mydata <- data.frame(cbind(Y,X1))
Тогда я построить регрессию
fit = lm(Y~.,data=mydata)
Тогда я получить SD
se <- sqrt(diag(vcov(fit)))
Теперь то, что я хочу сделать, это изменить столбец с наибольшим таковой со всеми остальными столбцами мой оригинал X и держите его самым низким se
, например, если вы бежите выше, в се, у меня есть X3 с самой большой стоимостью
X3
7.348126e-18
так что я изменить столбец 3 из X1 со всех других столбцов, кроме себя от X
Теперь я хочу автоматически изменять столбец 3 со всеми другими столбцами кроме себя от X
если вы делаете
> temp
#[1] 18 4 9 8 10
это столбец X1 3 изменен все столбцы X, кроме 9
Итак ... Почему бы вам просто не хранить информацию, например? 'temp <- sample (ncol (X), 5)', чтобы вы могли позже проверить, в каких столбцах они были?(edit: а затем, очевидно, измените код на 'X [, temp]') – Laterow
@Laterow Спасибо Я отредактировал свой вопрос сейчас – nik