Тестовые данные и метод его определения находится по адресу: Use of IF function in RСвязывание вектор правильно R
мне нужно ввести данные в «Test» в другую функцию. Ниже приведены данные для x и y (по существу два варианта: 1 = (89,3, 12,1) и 2 = (97,2, 8.5). Нижеприведенное уравнение является частью гораздо большей функции, но в этом и заключается проблема. сделать так, чтобы вызывать каждое из значений индивидуально из вектора, который у нас есть (Test), а для вывода должно быть 2 значения для каждого значения в тесте. Когда i link Test напрямую я получаю новый вектор с 50 выходными значениями, что делает . никакой реальный смысл, если я ставлю первое значение из вектора испытаний в, я получаю выход 2 значения, которое является правильным (я не проверил это вручную)
set.seed(1)
Test <- ifelse(runif(50, 0, 1) < 0.69, rnorm(50, 25, 4), rnorm(50, 28, 4.3))
x <- c(89.3, 97.2)
y <- c(12.1, 8.5)
c(-0.75*(((Test)-x)/y)^2)
выхода в настоящее время это из приведенной выше функции.:
[1] -21.32750 -55.05068 -25.23216 -49.25087 -20.09236 -53.28421 -19.61593
[8] -51.81307 -21.32136 -62.68412 -22.28700 -56.50245 -21.33593 -47.71792
[15] -18.53459 -55.10348 -16.12545 -42.79888 -19.73790 -40.38937 -17.77048
[22] -51.94862 -19.20262 -54.78823 -18.92120 -51.75187 -22.82277 -52.08655
[29] -18.82475 -45.86141 -16.28231 -56.33673 -24.02006 -50.75048 -14.97440
[36] -40.67076 -20.51602 -50.05597 -21.04648 -58.66084 -20.32455 -65.47588
[43] -20.01028 -53.19754 -15.84125 -52.88386 -23.09141 -50.51265 -19.73710
[50] -50.32994
но принимая первое значение из теста и поставить его вручную дает это:
c(-0.75*(((24.77549)-x)/y)^2)
[1] -21.32750 -54.44958
который является то, что я хочу для всех 50 значений в тесте
Спасибо за любую помощь.
Спасибо за это. Так же, как добавление, я эффективно использовал его и применял его в своем уравнении, и теперь я получаю правильные ответы (проверен вручную). Позволяет называть мое уравнение Opt1, и я хочу разделить каждый из двух результатов от него на сумму двух выходов (с выходом 1 сверху (-54.44959/sum (-21.32750--54.44959)) = 0,7185, и, таким образом, другое значение для -21.32750 - подразумевается 0.2815. поэтому я хочу создать другой набор значений в том же формате, что и выше, но im пытается изощренно работать для меня здесь. – YesSure
Как насчет 'apply (result, 2, function (v) v/sum (v)) ' –
(' apply' применяет функцию к полям матрицы, то есть к строкам или столбцам. '2' сообщает, чтобы она применялась к столбцам). –