在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()