Я пытаюсь использовать столбец в моем df, df называется combo, в качестве аргумента 'h' в моей функции. А также вектор 'v'. Значение df:
- 'data.frame': 10 шт. из 2 переменных:
- $ фальшивый: num 2.24e-05 2.40e-05 2.69e-05 2.87e-05 3.14e-05 ...
- $ funny: int 1 2 3 4 5 6 7 8 9 10
Вектор ve
: -str (ve) - num [1: 6] 1,37 2,4 2,23 3,2 2,9 3,22
Функция:
f<-function(h, v){
m_k<- (Density*h)/(Cd*v)
y<- m_k*(v*sin(a)+(m_k*g))
return (y)
}
, где Density
и Cd
- константы. Я получаю следующую ошибку при запуске f(combo$fake, ve)
Предупреждающие сообщения:
1: In (Density * h) / (Cd * v):
большая длина объекта не кратна короткой длине объекта
, и я получаю, что они не имеют одинаковую длину. Но я хотел бы, чтобы R применил функцию, используя первый член ve
для каждого члена в combo$fake
, создав один столбец для этого первого ve
, а затем повторил со вторым членом в ve
, чтобы в конце у меня есть 6 столбцов и 10 строк результатов, заданных функцией.
Я пытался использовать функции apply и a для l oop, а также явно ссылаться на аргументы, как при combo$fake
, но я хочу избежать жесткого кодирования функции (иначе я бы не использовал функция). Это всего лишь образец, мой реальный набор данных намного больше.
Вот несколько примеров того, что я пробовал, и фрагмент данных.
combo$fake $funny
<dbl> <int>
1 0.0000224 1
2 0.000024 2
3 0.0000269 3
4 0.0000287 4
5 0.0000314 5
6 0.0000324 6
y<- for (i in seq_len(ve)) {
for(j in seq_along(combo$fake))
f(combo$fake, ve)
}
y<- mapply(f, ve, combo$fake)
Я пытался прочитать другие подобные вопросы по stackoverflow, но я просто не могу заставить его работать :-(. Излишне говорить, что я очень новичок в R, пожалуйста помогите и заранее спасибо.