在多个数据集上执行函数

时间:2017-03-21 12:36:40

标签: r vector dataframe

在多个对象上执行函数是否有简单的解决方案?我正在尝试do.callsapply,但没有让它运行。

我有3个数据框,我正在检查它们的行数。要获取矢量,我使用的是c(nrow(df), nrow(df_flt), nrow(df_ident))。结果将是显示数字的普通向量。通过调用类似的东西,我希望得到的是这样的命名向量:

do.my.call(nrow, c(df, df_flt, df_ident))

  nrow(df)   nrow(df_flt) nrow(df_ident) 
        95             58              3 

有没有办法用一行代码获取这个命名向量?我可以自己构建一个函数,此刻我感觉这应该可以通过使用内置函数来实现

以下是一些示例数据。

df <- data.frame(a=1:95)
df_flt <- df[1:58,]
df_ident <- df[1:3,]
c(nrow(df), nrow(df_flt), nrow(df_ident))

jnk <- c(nrow(df), nrow(df_flt), nrow(df_ident))
names(jnk) <- c('nrow(df)', 'nrow(df_flt)', 'nrow(df_ident)')

1 个答案:

答案 0 :(得分:1)

我们可以将它们放入命名列表,然后使用apply

sapply(list(mtcars = mtcars, cars = cars), nrow)

# mtcars   cars 
#     32     50