R-跨数据集的所有行应用函数(combinevar)

R-跨数据集的所有行应用函数(combinevar),r,apply,variance,R,Apply,Variance,我有一个数据集,其中每一行都包含combinevar函数所需的数据(package=fishmethods;combinevar将来自两个分布的信息结合起来,得出组合方差) xbar1=c(2,2,1,4,3) xbar2=c(0,0,0,0,0) var1=c(0,1,3,2,1) var2=c(0,0,0,0,0) n1=c(50,10,30,40,50) n2=c(3,4,50,32,20) df我们可以按行嵌套数据,然后映射每行的函数 library(tidyverse) library

我有一个数据集,其中每一行都包含combinevar函数所需的数据(package=fishmethods;combinevar将来自两个分布的信息结合起来,得出组合方差)

xbar1=c(2,2,1,4,3)
xbar2=c(0,0,0,0,0)
var1=c(0,1,3,2,1)
var2=c(0,0,0,0,0)
n1=c(50,10,30,40,50)
n2=c(3,4,50,32,20)

df我们可以按行嵌套数据,然后映射每行的函数

library(tidyverse)
library(fishmethods)

df %>% 
  rownames_to_column("row") %>% 
  nest(-row) %>%
  mutate(combined_var = map(data, ~combinevar(xbar = c(.x$xbar1, .x$xbar2), 
                                              s_squared = c(.x$var1, .x$var2), 
                                              n = c(.x$n1, .x$n2))[2])) %>%
  unnest()
#>   row combined_var xbar1 xbar2 var1 var2 n1 n2
#> 1   1    0.2177068     2     0    0    0 50  3
#> 2   2    1.5714286     2     0    1    0 10  4
#> 3   3    1.3386076     1     0    3    0 30 50
#> 4   4    5.1048513     4     0    2    0 40 32
#> 5   5    2.5734990     3     0    1    0 50 20
或者我们可以按行应用函数

df %>% 
  rowwise() %>%
  mutate(combined_var = combinevar(xbar = c(xbar1, xbar2), 
                                              s_squared = c(var1, var2), 
                                              n = c(n1, n2))[2])
#> Source: local data frame [5 x 7]
#> Groups: <by row>
#> 
#> # A tibble: 5 x 7
#>   xbar1 xbar2  var1  var2    n1    n2 combined_var
#>   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>        <dbl>
#> 1     2     0     0     0    50     3        0.218
#> 2     2     0     1     0    10     4        1.57 
#> 3     1     0     3     0    30    50        1.34 
#> 4     4     0     2     0    40    32        5.10 
#> 5     3     0     1     0    50    20        2.57
df%>%
行()
突变(combined_var=combinevar(xbar=c(xbar1,xbar2),
s_平方=c(var1,var2),
n=c(n1,n2))[2])
#>来源:本地数据帧[5 x 7]
#>小组:
#> 
#>#A tibble:5 x 7
#>xbar1 xbar2 var1 var2 n1 n2组合型
#>                
#> 1     2     0     0     0    50     3        0.218
#> 2     2     0     1     0    10     4        1.57 
#> 3     1     0     3     0    30    50        1.34 
#> 4     4     0     2     0    40    32        5.10 
#> 5     3     0     1     0    50    20        2.57

由(v0.2.0)于2018-08-19创建。

我们可以按行嵌套数据,然后映射每行的函数

library(tidyverse)
library(fishmethods)

df %>% 
  rownames_to_column("row") %>% 
  nest(-row) %>%
  mutate(combined_var = map(data, ~combinevar(xbar = c(.x$xbar1, .x$xbar2), 
                                              s_squared = c(.x$var1, .x$var2), 
                                              n = c(.x$n1, .x$n2))[2])) %>%
  unnest()
#>   row combined_var xbar1 xbar2 var1 var2 n1 n2
#> 1   1    0.2177068     2     0    0    0 50  3
#> 2   2    1.5714286     2     0    1    0 10  4
#> 3   3    1.3386076     1     0    3    0 30 50
#> 4   4    5.1048513     4     0    2    0 40 32
#> 5   5    2.5734990     3     0    1    0 50 20
或者我们可以按行应用函数

df %>% 
  rowwise() %>%
  mutate(combined_var = combinevar(xbar = c(xbar1, xbar2), 
                                              s_squared = c(var1, var2), 
                                              n = c(n1, n2))[2])
#> Source: local data frame [5 x 7]
#> Groups: <by row>
#> 
#> # A tibble: 5 x 7
#>   xbar1 xbar2  var1  var2    n1    n2 combined_var
#>   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>        <dbl>
#> 1     2     0     0     0    50     3        0.218
#> 2     2     0     1     0    10     4        1.57 
#> 3     1     0     3     0    30    50        1.34 
#> 4     4     0     2     0    40    32        5.10 
#> 5     3     0     1     0    50    20        2.57
df%>%
行()
突变(combined_var=combinevar(xbar=c(xbar1,xbar2),
s_平方=c(var1,var2),
n=c(n1,n2))[2])
#>来源:本地数据帧[5 x 7]
#>小组:
#> 
#>#A tibble:5 x 7
#>xbar1 xbar2 var1 var2 n1 n2组合型
#>                
#> 1     2     0     0     0    50     3        0.218
#> 2     2     0     1     0    10     4        1.57 
#> 3     1     0     3     0    30    50        1.34 
#> 4     4     0     2     0    40    32        5.10 
#> 5     3     0     1     0    50    20        2.57

由(v0.2.0)于2018-08-19创建。

您可以使用“将函数应用到行”并正确指定函数读取行:

    library(fishmethods)

    my_function<- function(vec){
    combined_var <- combinevar(xbar = c(vec[1], vec[2]), s_squared = c(vec[3], vec[4]), n = c(vec[5], vec[6]))
   }

    apply(df, 1, my_function) [2, ]
库(fishmethods)

my_函数您可以对行使用apply函数,并正确指定函数读取行:

    library(fishmethods)

    my_function<- function(vec){
    combined_var <- combinevar(xbar = c(vec[1], vec[2]), s_squared = c(vec[3], vec[4]), n = c(vec[5], vec[6]))
   }

    apply(df, 1, my_function) [2, ]
库(fishmethods)
my_函数