R:subset()函数将字符数据改为奇怪的代码

我使用openxlsx包中的read.xlsx()将一些数据读入R,这里是我读取数据的代码:

 data_all = read.xlsx(xlsxFile = paste0(path, EoLfileName), sheet = 1, detectDates = T, skipEmptyRows = F) 

现在,当我访问我的数据中的一个名称单元格时,它将以字符forms打印名称:

 > data_all[1,'name'] [1] "76-ES+ADVIP-20G" 

现在,让我们说我想基于一个条件在另一个柱上的某些行子集:

 data_sub = subset(data_all, !is.na(data_all$amount)) 

然而,如果我打印这个子集的数据,我会得到:

 > data_sub[1,'name'] [1] "A94198.10" 

我也尝试使用下面的方法做子集:

 data_sub = data_all[!is.na(data_all$amount),] 

但是我得到了同样的结果:“76-ES + ADVIP-20G”的预期输出将变成“A94198.10”

我使用mode()str()data_all$namedata_sub$name进行了多次检查,都返回了字符,所以它们格式正确。

这里有一个惊人的数据链接: https ://drive.google.com/file/d/0BwIbultIWxeVY1VtdDU5NFp1Tkk/view?usp=sharing

请帮助我! 我很困难,我没有看到类似的问题的其他职位。 为什么会发生这种情况? 子集不应该改变数据格式正确? 预先感谢您的帮助!

附加说明(如果有帮助):所以当我试图debugging,我注意到,当我在RStudio中查看data_all,如果我复制并粘贴名称“76-ES + ADVIP-20G”到filter栏中,它实际上找不到它; 我不得不input“76-ES”,只要我input下一个字符“+”,RStudio数据视图filter会说“找不到匹配的logging”