gpt4 book ai didi

r - 处理 R 中的重复性任务

转载 作者:行者123 更新时间:2023-12-03 13:57:50 24 4
gpt4 key购买 nike

我经常发现自己不得不在 R 中执行重复性任务。不得不一遍又一遍地在一个或多个数据结构上不断地运行相同的函数会变得非常令人沮丧。

例如,假设我在 R 中有三个单独的数据帧,我想删除每个数据帧中具有缺失值的行。对于三个数据帧,在每个 df 上运行 na.omit() 并不是那么困难,但它可能会变得非常低效
当一个人有一百个相似的数据结构需要相同的操作时。

df1 <- data.frame(Region=c("Asia","Africa","Europe","N.America","S.America",NA),
variable=c(2004,2004,2004,2004,2004,2004), value=c(35,20,20,50,30,NA))

df2 <- data.frame(Region=c("Asia","Africa","Europe","N.America","S.America",NA),
variable=c(2005,2005,2005,2005,2005,2005), value=c(55,350,40,90,99,NA))

df3 <- data.frame(Region=c("Asia","Africa","Europe","N.America","S.America",NA),
variable=c(2006,2006,2006,2006,2006,2006), value=c(300,200,200,500,300,NA))

tot04 <- na.omit(df1)
tot05 <- na.omit(df2)
tot06 <- na.omit(df3)

在 R 中处理重复性任务的一般准则是什么?

是的,我认识到这个问题的答案是针对一个人所面临的任务,但我只是询问用户在执行重复性任务时应该考虑的一般事项。

最佳答案

作为一般准则,如果您有多个对象要对其应用相同的操作,则应将它们收集到一个数据结构中。然后您可以使用循环、[sl]apply 等一次性完成操作。在这种情况下,而不是拥有单独的数据帧 df1 , df2等,您可以将它们放入数据框列表中,然后运行 ​​na.omit所有这些:

dflist <- list(df1, df2, <...>)
dflist <- lapply(dflist, na.omit)

关于r - 处理 R 中的重复性任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5972634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com