【发布时间】:2014-09-02 21:06:08
【问题描述】:
我正在尝试根据列值中的相似性来查找/丢弃行,并具有以下示例代码:
vec1 <- c("B","D","E","NA")
vec2 <- c("B","D","E","NA")
vec3 <- c("B","C","E","NA")
vec4 <- c("B","D","E","NA")
vec5 <- c("B","NA","E","E")
vec6 <- c("B","NA","NA","NA")
mat1 <- cbind(vec1,vec2,vec3,vec4,vec5,vec6)
mat1
vec1 vec2 vec3 vec4 vec5 vec6
[1,] "B" "B" "B" "B" "B" "B"
[2,] "D" "D" "C" "D" "NA" "NA"
[3,] "E" "E" "E" "E" "E" "NA"
[4,] "NA" "NA" "NA" "NA" "E" "NA"
rows = apply(mat1, 1, function(i) length(unique(i)) > 1 )
mat2 <- mat1[rows, ]
vec1 vec2 vec3 vec4 vec5 vec6
[1,] "D" "D" "C" "D" "NA" "NA"
[2,] "E" "E" "E" "E" "E" "NA
[3,] "NA" "NA" "NA" "NA" "E" "NA"
如何更改上面的代码来实现这一点?在unique 的帮助文件中,它建议有一个incomparables 参数,这是否已实现并且可以使用吗?我不一定希望删除 NA 只是忽略它们。
【问题讨论】:
-
rows = apply(mat1, 1, function(i) length(unique(i[!(i=="NA")]))>1) -
那么你有一个值为“NA”的字符还是你有一个合适的 R NA 值?
vec1 <- c("B","D","E","NA")与vec1 <- c("B","D","E",NA)非常不同 -
我有一个值为 NA 的角色。
-
@Vlo 您的评论非常有效,谢谢。您可以将其添加为答案吗?