将相同的自定义函数应用于多个数据框(并作为数据框而不是列表返回)

时间:2016-06-23 00:35:55

标签: r list function lapply

我有一堆不同的数据框,我想为每个数据框运行相同的自定义函数。我希望输出返回到每个原始数据框名称,而不是列表中。

假设我有一堆不同的数据框:

mtcars1,mtcars2,mtcars3 ..... mtcars20。在CYL专栏中,每个都有不同的因子水平。我想运行一个函数:

  1. 将CYL值返回到因子的数字 - as.numeric(as.character())
  2. 计算一些滚动平均值为mpg的新列。
  3. 现在代码是什么并应用此功能?我希望输出都是mtcars1 ... mtcars20数据帧。

    我试过看

     lapply(mylist=c(mtars1...mtcars20)  function(x)    myfunct()) 
    

    但我遇到了麻烦。

2 个答案:

答案 0 :(得分:0)

from __future__ import unicode_literals
import os
import io
import fnmatch
filePathSrc = r'C:\test'
for root, dirs, files in os.walk(filePathSrc):
    for fn in fnmatch.filter(files,'*.srt'):
        fullname = os.path.join(root,fn)
        with io.open(fullname) as f:
            data = f.read()
        with io.open(fullname,'w',encoding='utf-8-sig') as f:
            f.write(data)

答案 1 :(得分:0)

仍然可以使用lapply()函数返回数据框列表:

dfs <- rep(list(mtcars), 4) #list of data frames

dfs <- lapply(dfs, function(x) {
               names(x)[1] <- "m_p_g"
               x})
lapply(dfs, head, 2)
# [[1]]
#               m_p_g cyl disp  hp drat    wt  qsec vs am gear carb
# Mazda RX4        21   6  160 110  3.9 2.620 16.46  0  1    4    4
# Mazda RX4 Wag    21   6  160 110  3.9 2.875 17.02  0  1    4    4

# [[2]]
#               m_p_g cyl disp  hp drat    wt  qsec vs am gear carb
# Mazda RX4        21   6  160 110  3.9 2.620 16.46  0  1    4    4
# Mazda RX4 Wag    21   6  160 110  3.9 2.875 17.02  0  1    4    4

# [[3]]
#               m_p_g cyl disp  hp drat    wt  qsec vs am gear carb
# Mazda RX4        21   6  160 110  3.9 2.620 16.46  0  1    4    4
# Mazda RX4 Wag    21   6  160 110  3.9 2.875 17.02  0  1    4    4

# [[4]]
#               m_p_g cyl disp  hp drat    wt  qsec vs am gear carb
# Mazda RX4        21   6  160 110  3.9 2.620 16.46  0  1    4    4
# Mazda RX4 Wag    21   6  160 110  3.9 2.875 17.02  0  1    4    4