2015-07-16 3 views
0

ВУникальных наблюдений за колонок

data <- structure(list(A = c(0L, 0L, 1L, 0L, 1L, 1L), B = c(1L, 0L, 1L, 
1L, 0L, 1L), C = c(1L, 0L, 1L, 0L, 0L, 0L), D = c(0L, 1L, 1L, 
1L, 0L, 0L)), .Names = c("A", "B", "C", "D"), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6")) 

, где столбцы являются образцами, и ряды видов наблюдения.

Как можно получить число видов, которые появляются только в одном столбце (или подмножество dataframe?

В этом примере, виды 5 исключительно происходящие в образце А, и виды 2 в образце D . Спасибо!

ответ

1
rowSums(data) == 1 

дает виды, которые появляются только в одной колонке.

Update

дает вам столбцы, где появились одиночки:

colSums(data[rowSums(data) == 1, ]) == 1 
+0

Спасибо, но как можно получить информацию, в колонке которой появился синглтон? – nouse

+0

@nouse Смотрите мои правки. – EDi

1

Может быть, вы могли бы попробовать:

data[!rowSums(data) > 1,] 
# A B C D 
#2 0 0 0 1 
#5 1 0 0 0 

Это поможет вам только строки 2 и 5, а вид 2 происходит только в образце D, и 5, как это происходит только в образце A.

Смежные вопросы