#r
#r
Вопрос:
У меня есть переменная (Var), которая хранит 10000 значений и имеет целочисленный характер.
Я хочу подсчитать, сколько раз числовое значение 1000 или выше 1000 встречается в этом списке.
Есть какая-нибудь одна строка в R?
Заранее благодарю вас.
Ответ №1:
sum(Var >= 1000)
будет делать это, пока Var
это вектор. Если нет, вам нужно указать R, чтобы найти Var
внутри любого объекта, содержащего его. Вот пример:
> set.seed(2)
> Var <- sample(900:1100, 10)
> Var
[1] 937 1040 1014 933 1085 1084 925 1061 990 1005
> Var >= 1000
[1] FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE
> sum(Var >= 1000)
[1] 6
При этом используется тот факт, что TRUE
= 1 и FALSE
= 0 .
Комментарии:
1. В качестве примечания, если вы хотите сделать это для » Var == 1000″, обязательно ознакомьтесь с разницей между «==» и «all.equal»
Ответ №2:
sum(Var>=1000)
Предлагаю вам прочитать некоторые вводные документы, подобные вещи возникают постоянно. Кроме того, мы надеемся, что у вас есть не «список», а «вектор». Если это «список», то… ммм, сначала открепите его от списка().
Комментарии:
1. Я думаю, вы имели в виду
>=
не только>
2. @Spacedman: Спасибо за совет, я играю с вашим сценарием моделирования MC. Я хочу подсчитать, сколько раз наблюдаемое перекрытие происходило в вашей переменной sim, а затем разделить его на количество циклов. Это даст некоторую долю, которую, я думаю, можно использовать как эмпирическое p-значение. Есть предложения?????
3.
mean(Var>=1000)
это умное сокращение дляsum(Var>=1000)/length(Var)
Ответ №3:
возможно, не так эффективно, но мне нравится
> length(which(Var>=1000))
Ответ №4:
Попробуйте это:
sum(r >= 1000)
где r — вектор. Это работает, потому что R автоматически преобразует логические значения TRUE / FALSE в значения 1 и 0 при попытке суммирования логического вектора.
Ответ №5:
Также можно использовать:
vec <- sample(1:10, 15, replace = TRUE)
table(vec > 2)
или
length(vec[vec>2])