R语言中含%符号的变量名在dataframe中被修改的问题求助
解决R中dataframe非标准列名自动转换问题
- 创建dataframe时添加
check.names = FALSE参数,即可保留原始的%VARIABLE列名,避免被自动转换为X.VARIABLE:
new_x <- data.frame(X1 = 1, X2 = 0, X3 = 0, X4= 1, X5 = 0.765, `%VARIABLE` = 16.1, check.names = FALSE)
- 执行上述代码后,用
colnames(new_x)查看列名,会发现%VARIABLE被完整保留,此时再调用predict()函数就能正常匹配模型中的变量,不会出现名称不匹配的问题。
原因:R的data.frame()函数默认开启check.names = TRUE,会自动将包含特殊字符(如%)的非标准列名转换为符合R语法规则的名称,把%替换为X.。关闭该检查参数就能保留原始列名格式。
内容的提问来源于stack exchange,提问作者Antonio Mendes
相关产品推荐
相关产品推荐

