R,CSV中的非唯一值,这是由于字符列值中的空白区域看不见的点

M_S*_*mal 1 csv excel r

我试图在(大)数据集中找到唯一的物种,但它在unique()结果中返回两次相同的名称.

TestData <- read.csv("Data\\TestData.csv", stringsAsFactors = FALSE)

unique(TestData$Species)

[1] "Amblyeleotris aurora"  "Amblyeleotris aurora"  "Cetoscarus bicolor"    "Cetoscarus bicolor"    "Cephalopholis polleni"
[6] "Cephalopholis polleni"
Run Code Online (Sandbox Code Playgroud)

作为非唯一返回的相同物种之间没有拼写不匹配,当我查看csv文件时,它们看起来都是一样的.但是,当我将名称复制到R控制台或脚本时,有一个红色.将Genus和Species分开.喜欢Amblyeleotris.aurora.

这可能是csv文件的问题,但是当我在Notepad ++和MS excel中查看文件时,不会出现点.但是,对于相同物种(即"Amblyeleotris aurora"和"Amblyeleotris aurora"),MS Excel中的相等性检查评估为false.

如上所述,这更可能是csv的问题,但我想找到是否有办法在R内克服这个问题.

如果已经在某个地方回答过这个问题,或者这个问题太简单了,我可以提前道歉,但我没有在堆栈或互联网上找到任何解决方案.

下面是示例TestData csv文件的链接,用于复制ScriptPanel的示例和屏幕截图以显示红点.

TestData.csv文件

在此输入图像描述

干杯Shimal

efb*_*own 5

这些红点表示您的文件中有不间断的空格(NBSP).

在R中,您可以使用此行将Species列中的所有NBSP转换为常规空格:

TestData$Species <- gsub("[[:space:]]", " ", TestData$Species)
Run Code Online (Sandbox Code Playgroud)

现在,您的唯一调用将指示所有空格都相同:

> unique(TestData$Species)
[1] "Amblyeleotris aurora"  "Cetoscarus bicolor"   
[3] "Cephalopholis polleni"
Run Code Online (Sandbox Code Playgroud)