Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在数据表的每一行上解一个线性方程_R - Fatal编程技术网

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”.

这正是我需要的,因为我以后可能会使用更难的功能。谢谢!这正是我需要的,因为我以后可能会使用更难的功能。谢谢!