相关疑难解决方法(0)

如何制作一个很好的R可重复的例子

在与同事讨论性能,教学,发送错误报告或在邮件列表上搜索指导时,以及在Stack Overflow上,通常会询问可重复的示例并始终提供帮助.

您有什么建议创建优秀示例的提示?如何以文本格式粘贴中的数据结构?您还应该包含哪些其他信息?

在另外还有其他招数来使用dput(),dump()structure()?你什么时候应该包括library()require()声明?其中保留字应避免一个,此外c,df,data等?

怎样才能成为一位伟大的重复的例子?

r r-faq

2474
推荐指数
23
解决办法
28万
查看次数

如何使用purrr将计算列添加到嵌套数据框(列表列)

我想对嵌套数据帧(存储为列表列)执行计算,并使用purrr函数将计算的变量添加回每个数据帧.我将使用此结果加入其他数据,并保持紧凑,这有助于我更好地组织和检查它.我可以通过几个步骤完成此操作,但似乎可能有一个我没有遇到的解决方案.如果有解决方案,我无法轻易找到它.

加载库.示例需要以下软件包(在CRAN上可用):

library(dplyr)
library(purrr)
library(RcppRoll) # to calculate rolling mean
Run Code Online (Sandbox Code Playgroud)

具有3个主题的示例数据,以及随时间的重复测量:

test <- data_frame(
  id= rep(1:3, each=20),
  time = rep(1:20, 3),
  var1 = rnorm(60, mean=10, sd=3),
  var2 = rnorm(60, mean=95, sd=5)
  )
Run Code Online (Sandbox Code Playgroud)

将数据存储为嵌套数据框:

t_nest <- test %>% nest(-id)

     id              data
  <int>            <list>
1     1 <tibble [20 x 3]>
2     2 <tibble [20 x 3]>
3     3 <tibble [20 x 3]>
Run Code Online (Sandbox Code Playgroud)

执行计算.我将根据数据计算多个新变量,尽管稍后可以扩展一个解决方案.每次计算的结果都是一个数字向量,长度与输入相同(n = 20):

t1 <- t_nest %>% 
  mutate(var1_rollmean4 = map(data, ~RcppRoll::roll_mean(.$var1, n=4, align="right", fill=NA)),
         var2_delta4 …
Run Code Online (Sandbox Code Playgroud)

r dplyr purrr

6
推荐指数
1
解决办法
1806
查看次数

标签 统计

r ×2

dplyr ×1

purrr ×1

r-faq ×1