На этом сайте я обнаружил следующую функцию, и она прекрасно работает, когда я пытаюсь сопоставить только типы данных второго фрейма данных с первым.
Но что произойдет, если у меня будет более 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)
}