我想创建一个函数,其中参数(input)是未知数量的数据帧(可能会变化),output是数据帧,输入的每列数据帧的数据类型为output.
示例:下面有2个数据帧(数据帧的数量可能会有所不同,因此我不确定如何将其作为函数参数传递).
# Dataframe 1
kpi_id <- c("SL", "OOS")
kpi_val <- c (1,2)
df1 <- data.frame(kpi_id, kpi_val)
> sapply(df1, class)
kpi_id kpi_val
"character" "numeric"
# Dataframe 2
kpi_id <- c("SL", "OOS")
kpi_val <- c ("3", "4")
df2 <- data.frame(kpi_id, kpi_val)
> sapply(df2, class)
kpi_id kpi_val
"character" "character"
我可以通过以下简单方式得到结果:
df_types1 <- as.data.frame(sapply(df1, class))
colnames(df_types)[1] <- deparse(substitute(df1))
df_types2 <- as.data.frame(sapply(df2, class))
colnames(df_types)[1] <- deparse(substitute(df2))
df_types3 <- bind_cols(df_types1, df_types2)
> df_types3
df1 df2
kpi_id character character
kpi_val numeric character
如何创建一个初始数据帧数量未知的函数,以获得相同的输出?