R 在数据表的每一行上解一个线性方程
我做了一些线性回归,我想预测超过某个值的时刻 这意味着我有三列:R 在数据表的每一行上解一个线性方程,r,R,我做了一些线性回归,我想预测超过某个值的时刻 这意味着我有三列: a= slope b = intercept c = target value 我想计算的每一行 solve(a,(c-b)) 如何在不使用循环的情况下高效地执行此操作(这是一个广泛的数据集)?以下是使用矢量化功能的一种简单方法: solve_vec <- Vectorize(solve) solve_vec(d$a, d$c - d$b) > solve_vec(d$a, d$c - d$b) [1] 12.0
a= slope
b = intercept
c = target value
我想计算的每一行
solve(a,(c-b))
如何在不使用循环的情况下高效地执行此操作(这是一个广泛的数据集)?以下是使用
矢量化功能的一种简单方法:
solve_vec <- Vectorize(solve)
solve_vec(d$a, d$c - d$b)
> solve_vec(d$a, d$c - d$b)
[1] 12.0 6.0 4.0 3.0 2.4
solve_vec solve_vec(d$a,d$c-d$b)
[1] 12.0 6.0 4.0 3.0 2.4
以下是使用矢量化功能的简单方法:
solve_vec <- Vectorize(solve)
solve_vec(d$a, d$c - d$b)
> solve_vec(d$a, d$c - d$b)
[1] 12.0 6.0 4.0 3.0 2.4
solve_vec solve_vec(d$a,d$c-d$b)
[1] 12.0 6.0 4.0 3.0 2.4
所以你基本上想要解这个方程
c = a*x + b
对于每行的x
?这有一个非常简单的解决方案
x = (c-b)/a
这是R中的矢量化操作。不需要循环
dd <- data.frame(
a = 1:5,
b = -2:2,
c = 10:14
)
transform(dd, solution=(c-b)/a)
# a b c solution
# 1 1 -2 10 12.0
# 2 2 -1 11 6.0
# 3 3 0 12 4.0
# 4 4 1 13 3.0
# 5 5 2 14 2.4
dd所以你基本上想要解这个方程
c = a*x + b
对于每行的x
?这有一个非常简单的解决方案
x = (c-b)/a
这是R中的矢量化操作。不需要循环
dd <- data.frame(
a = 1:5,
b = -2:2,
c = 10:14
)
transform(dd, solution=(c-b)/a)
# a b c solution
# 1 1 -2 10 12.0
# 2 2 -1 11 6.0
# 3 3 0 12 4.0
# 4 4 1 13 3.0
# 5 5 2 14 2.4
dd除了上述响应,您还可以使用tidyverse
中的mutate
功能。像这样:
library(magrittr)
library(tidyverse)
dataframe %<>% mutate(prediction=solve(a,(c-b))
库(magrittr)
图书馆(tidyverse)
数据帧%%mutate(预测=求解(a,(c-b))
在本例中,我们假设列“a”、“b”和“c”位于一个名为“dataframe”的表中。然后,我们使用magrittr
库中的%%
函数说“将后面的函数应用于dataframe”.除了上述响应之外,您还可以使用tidyverse
中的mutate
功能。如下所示:
library(magrittr)
library(tidyverse)
dataframe %<>% mutate(prediction=solve(a,(c-b))
库(magrittr)
图书馆(tidyverse)
数据帧%%mutate(预测=求解(a,(c-b))
在本例中,我们假设列“a”、“b”和“c”位于一个名为“dataframe”的表中。然后,我们使用magrittr
库中的%%
函数说“将后面的函数应用于dataframe”.这正是我需要的,因为我以后可能会使用更难的功能。谢谢!这正是我需要的,因为我以后可能会使用更难的功能。谢谢!