我有两个看起来相同但不相同的字符串。
> t
[1] "2009_Manaus_Aerotáxi_crash"
> t2
[1] "2009_Manaus_Aerotáxi_crash"
> identical(t,t2)
[1] FALSE
> str(t)
chr "2009_Manaus_Aerotaxi_crash""| __truncated__
> str(t2)
chr "2009_Manaus_Aerotáxi_crash"
如何强制这两个字符串相等?
谢谢
考虑使用stringi(stri_compare
)包中的https://cran.r-project.org/web/packages/stringi/方法。如果两个字符串相等或规范相等,则返回0
。检查文档here。
在您的情况下,您将像这样进行测试:
require('stringi')
t = "2009_Manaus_Aerotáxi_crash"
t2 = "2009_Manaus_Aerotáxi_crash"
t3 = "1111_Manaus_Aerotáxi_crash"
ifelse( (stri_compare(t,t2) == 0), "Strings are equal", "Strings are different")
ifelse( (stri_compare(t,t3) == 0), "Strings are equal", "Strings are different")
希望这会有所帮助
如果将数据写到csv中,然后在类似Notepad ++的程序中打开文件,然后打开view>所有字符,您将可以看到字符串末尾是否有LF或\ r或\ n。然后您将有一个更好的主意,您需要删除什么,可以使用上面的建议(stringi :: str_cmp())测试一个您知道无法正常工作的字符串示例,以确保您已将其修复。