2013-11-21 2 views
0

У меня есть 34 подмножества с кучей переменных, и я создаю новый dataframe с суммирующей информацией о каждой переменной для подмножеств. - Пример: A10, T2 и V2 - все подмножества с ~ 10 переменными и 14 наблюдениями, где одна переменная является совокупностью.Подсчитайте вхождения только одного значения в R

Я хочу, чтобы в моем новом DataFrame был столбец, в котором указано, сколько раз за переменную подмножества 2 достигают нуля.

Я посмотрел на кучу различных функций подсчета, но все они, кажется, создают отдельные таблицы и подсчитывают вхождения всех переменных. Меня не интересует, сколько раз появляется каждое уникальное значение, потому что большинство значений уникальны, я просто хочу знать, сколько раз население попало в ноль для каждого поднабора из 14 наблюдений.

Я понимаю, что это, вероятно, простая вещь, но я не очень хорошо разбираюсь в своих собственных решениях от другого кода R. Спасибо за помощь.

Я сделал что-то подобное с другим набором данных, где я подсчитал, сколько раз «NA» произошло в векторе, где все остальные значения были численными. Для этого я использовал:

na.tmin<- c(sum(is.na(s1997$TMIN)), sum(is.na(s1998$TMIN)), sum(is.na(s1999$TMIN))... 

Который создал столбец (na.tmin), который имел количество раз каждое подмножество записанных NA вместо числа. Я хотел бы просто подсчитать количество раз, когда произошло значение 0, но is.0 - это, конечно, не функция, потому что 0 является числовым. Есть ли функция, которая будет просто подсчитывать количество раз, когда появляется определенное значение? Если я не должен использовать функции count для функции уникальных значений?

+1

Понятие «сколько раз население попало в ноль для каждого подмножества», требует немного объяснения. У вас может возникнуть затруднение с созданием решений, но вам действительно нужно использовать некоторый R-код для создания проблемы, чтобы мы могли попытаться решить проблему. –

+0

Посмотрите на функцию 'sapply'. Во всех подмножествах вы можете применить функцию, которая учитывает уникальные значения популяции, а затем подмножество этого, чтобы получить только количество раз 0. –

+0

Вы все равно можете использовать 'sum' так:' sum (A10 $ population == 0) ', чтобы подсчитать количество' 0' в определенном подмножестве. Если у вас несколько наборов данных, вам может быть лучше собрать их в «list», например 'allsubs <- list (A10, T2)', а затем вы можете 'lapply' вашу' sum' функцию через каждый из наборов данных - ' lapply (allsubs, function (x) sum (x $ population == 0)) ' – thelatemail

ответ

0

Возможно:

sum(abs(s1997$TMIN) < 0.00000001) 

Это безопаснее использовать значение допуска, если вы не уверены, что вы цените целое. См. FAQ 7.31.

sum(abs(pi - (355/113+seq(-0.001, 0.001, length=1000)))< 0.00001) 
[1] 10 
Смежные вопросы