如何有效地强制多个数据框共享的列属于同一类类型

时间:2018-11-08 22:49:16

标签: r

我在该网站上发现了以下功能,当我仅尝试将第二个数据框的数据类型与第一个数据框的数据类型进行匹配时,该功能非常有用。 但是,如果我有10个以上的数据帧,并且在它们之间共享的相同列属于不同的数据类型,例如一个数据帧中的“等级”列被归类为数字,而在另几个数据帧中被归类为字符,会发生什么呢?是否可以修改此函数,以便我要做的就是指定将哪些数据帧放入该函数中,并使其返回多个数据类型与第一个匹配的数据帧?我对功能没有任何经验,但是我希望对它们有更多的了解。我一直在使用matchColClasses(谢谢GGAnderson!),但一次只有两个数据帧,这可能会很麻烦。感谢您提供的任何反馈。

 matchColClasses<- function(df1, df2){
# Purpose:  protect joins from column type mismatches - a problem with multi-column empty df          
# Input:    df1 - master for class assignments, df2 - for col reclass and return.
# Output:   df2 with shared columns classed to match df1
# Usage:    df2 <- matchColClasses(df1, df2)

  sharedColNames <- names(df1)[names(df1) %in% names(df2)]
  sharedColTypes <- sapply(df1[,sharedColNames], class)

  for (n in sharedColNames) {
    class(df2[, n]) <- sharedColTypes[n]
  }

  return(df2)
 }

0 个答案:

没有答案