从列表中取回数据帧? [英] R - lapply - getting data frames back out of lists?
本文介绍了从列表中取回数据帧?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我和这个人有相同的问题:returning from list to data.frame after lapply
虽然他们解决了他的具体问题,但实际上没有人回答他最初提出的如何从列表中提取数据帧的问题。
我有一个数据框列表:
dfPreList = list(yearlyFunding, yearlyPubs, yearlyAuthors)
并且我想对它们进行筛选/替换等操作。
所以我的函数是:
DoThis = function(x){
filter(x, year >=2015 & year <=2018) %>%
replace(is.na(.), 0) %>%
adorn_totals("row")
}
我使用lApply对它们全部运行函数,如下所示:
a = lapply(dfPreList, DoThis)
正如另一个帖子所说,这些数据帧现在被困在这个列表(a)
中,我需要for loop
来取出它们,这不是正确的方法。
这是我当前的工作方式,将该函数应用于数据帧,然后将其取出:
dfPreList = list(yearlyFunding, yearlyPubs, yearlyAuthors)
dfPreListstr= list('yearlyFunding', 'yearlyPubs', 'yearlyAuthors')
DoThis = function(x){
filter(x, year >=2015 & year <=2018) %>%
replace(is.na(.), 0) %>%
adorn_totals("row")
}
a = lapply(dfPreList, DoThis)
for( i in seq_along(dfPreList)){
assign(dfPreListstr[[i]], as.data.frame(a[i]))
}
有没有一种方法可以在不依赖数据帧的for loops
和字符串名称的情况下实现这一点?即带有lapply
?的一行程序
非常感谢您的帮助
推荐答案
您可以将名称分配给列表,然后使用list2env
。
dfPreList = list(yearlyFunding, yearlyPubs, yearlyAuthors)
a = lapply(dfPreList, DoThis)
names(a) <- c('yearlyFunding', 'yearlyPubs', 'yearlyAuthors')
list2env(a, .GlobalEnv)
这篇关于从列表中取回数据帧?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文