首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算逐行最小二乘法

计算逐行最小二乘法
EN

Stack Overflow用户
提问于 2018-10-16 15:36:01
回答 2查看 60关注 0票数 1

我想做以下事情,但不知道怎么做(对R编程非常陌生!)

我想要计算数值向量('values')和数据框中的每一行('df')之间的最小二乘度量(在下面的代码中定义)。

我想出了一种需要我手动更改行的方法(参见'dat')。

如何让R从每一行计算LS,并在df中创建一个新列来存储相应行的LS值?

(我有一个很大的数据框,所以基本上不能手动完成)

代码语言:javascript
复制
# 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)
EN

回答 2

Stack Overflow用户

发布于 2018-10-16 15:41:17

代码语言:javascript
复制
df$LS=apply(df,1,function(x){
  sum((values-x)^2)
})
票数 0
EN

Stack Overflow用户

发布于 2018-10-16 16:00:22

如果您没有大量的列,也可以尝试dplyr解决方案,如下所示:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52830206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档