在dplyr中使用do()对每行调用函数的最佳样式?

在dplyr中使用do()对每行调用函数的最佳样式?,r,dplyr,R,Dplyr,假设我有以下数据框: df <- data_frame( my_x1 = c(1, 11, 21), my_x2 = c(10, 20, 30), my_y1 = c(100, 200, 300), my_y2 = c(400, 500, 600)) df我将进行转置,使其成为列操作,而不是行操作。但这只是一种风格,没有对错。谢谢你,格雷戈。你能详细介绍一下转置方法吗?转置后,每列由四行组成,其中包含(x1、x2、y1、y2)的值。如何从那里调用

假设我有以下数据框:

  df <- data_frame(
    my_x1 = c(1, 11, 21), 
    my_x2 = c(10, 20, 30), 
    my_y1 = c(100, 200, 300), 
    my_y2 = c(400, 500, 600))

df我将进行转置,使其成为列操作,而不是行操作。但这只是一种风格,没有对错。谢谢你,格雷戈。你能详细介绍一下转置方法吗?转置后,每列由四行组成,其中包含(x1、x2、y1、y2)的值。如何从那里调用approx()?(我明白这只是风格的问题;我只是试图掌握任何提高代码可读性的最佳实践。)也许我读得不够仔细,这在我看来实际上相当不错。我最初的方法可能是为近似值编写一个快速包装器,它接受一个向量(x1,x2,y1,y2)并返回您想要的值。实际上,由于没有分组(至少在本例中),我可能只使用
apply
do(,.data.frame(
)中的
)是不必要的,可以简化为
do(data.frame)(
。另外,我更喜欢在这里调用
而不是
。主要是因为我觉得它更容易阅读。对于风格问题,也许更适合。
  df2 <- df %>% 
    rowwise() %>% 
    do(., data.frame(
      approx(
          x=c(.$my_x1, .$my_x2), 
          y=c(.$my_y1, .$my_y2), 
          xout=.$my_x1:.$my_x2))) %>%
    rename(my_x = x, my_y = y) %>%
    as_data_frame()