尝试一次对许多对象执行相同的操作

时间:2019-04-08 15:18:09

标签: r function

我要过滤的数据类型太多,无法逐行执行此操作,想知道是否有可能使自定义函数一次执行该操作,以及该怎么做?

我正在尝试根据我的数据制定一个标准,因此我需要在多个不同条件下(例如可能需要考虑27 * 6个条件)的平均值和标准偏差。

我目前正在使用select()的许多行来过滤列名称中表示的种类的数据

se_fn_F1 <- se_fn %>% select(ParticipantName,contains('F1'))
se_fn_F2 <- se_fn %>% select(ParticipantName,contains('F2'))
se_fn_F3 <- se_fn %>% select(ParticipantName,contains('F3'))
se_fn_F4 <- se_fn %>% select(ParticipantName,contains('F4'))
se_fn_B1 <- se_fn %>% select(ParticipantName,contains('B1'))
se_fn_B2 <- se_fn %>% select(ParticipantName,contains('B2'))
se_fn_B3 <- se_fn %>% select(ParticipantName,contains('B3'))
se_fn_B4 <- se_fn %>% select(ParticipantName,contains('B4'))
se_fn_B5 <- se_fn %>% select(ParticipantName,contains('B5'))
se_fn_B6 <- se_fn %>% select(ParticipantName,contains('B6'))

显然,这不是做这样的事情的好方法,但是我不知道如何使用自定义功能,需要一些建议

我意识到我应该提供一些信息。 原始变量的名称类似于“ Single10_F2_FixationTime”,它显示了变量所属的三个不同类别。

1 个答案:

答案 0 :(得分:0)

尝试这个,我希望这会给你第一个结果。

stk_dta <- se_fn %>%
    gather(variable, value, F1:F4, B1:B6)

result <- lapply(stk_dta$variable, function(x) {
    stk_dta %>% filter(variable == x) %>% spread(variable, value)
})