【发布时间】:2021-08-17 21:24:37
【问题描述】:
我有两个数据框:main_df 是主表。 addl_df 是一个较小的表。
目标:将addl_df 中的所有字符变量转换为因子,与main_df 中的同名字符变量相同级别。
main_df <- data.frame(id=c(1, 2, 3, 4, 5), age=c(10, 20, 30, 40, 45), gender=c("F","F","M","M","F"), city=c("A","B","C","D","D"))
addl_df <- data.frame(id=c(7,8), age=c( 40, 45), gender=c("F","F"), city=c("C","D"))
使用下面的代码,city 将是一个具有 2 个级别(“C”和“D”)的因子变量。我想要的是一个具有 4 个级别“A”、“B”、“C”的因子, “D”和“C”的值为 3(与 main_df 中的定义相同)。
是否有可能以自动化方式执行此操作(而不是一个一个地手动定义变量?谢谢!
main_df[sapply(main_df, is.character)] <- lapply(main_df[sapply(main_df, is.character)], as.factor)
addl_df[sapply(addl_df, is.character)] <- lapply(addl_df[sapply(addl_df, is.character)], as.factor)
【问题讨论】: