Рассчитать ряд наименьших квадратов - PullRequest
0 голосов
/ 16 октября 2018

Я хотел бы сделать следующее и не уверен, как (очень плохо знаком с программированием на R!)

Я хочу вычислить меру наименьших квадратов (как определено в коде ниже) между числовым вектором ('значения ') и каждая строка во фрейме данных (' df ').

Я придумал способ, который требует от меня изменить строку вручную (см. «Дата»).

Как сделать R для вычисления LS из каждой строки и создания нового столбца для df, в котором хранится значение LS для соответствующей строки?

(у меня большой фрейм данных, поэтому я не могу сделать это вручную)

# Dataframe

df <-data.frame(col1=c(1:10),
                   col2=c(2:11),
                   col3=c(3:12))

# num vector 
values <- c(0.2, 0.5, 1.2)

#Calculate the least squares  
dat <- df[1,1:3]
LS<- sum((values-dat)^2)

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Если у вас нет большого количества столбцов, вы также можете попробовать решение dplyr, например:

df %>%
  rowwise() %>%
  mutate(temp1 = (values[1]-col1)^2,
         temp2 = (values[2]-col2)^2,
         temp3 = (values[3]-col3)^2,
         LS = sum(temp1, temp2, temp3)) %>%
  select(-temp1, -temp2, -temp3)
0 голосов
/ 16 октября 2018
df$LS=apply(df,1,function(x){
  sum((values-x)^2)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...