У меня есть большой набор данных (202 тыс. Точек). Я знаю, что существует 8 значений более 0,5. Я хочу подмножество на этих строках.Как найти пиковые значения/номера строк?
Как найти/вернуть список номеров строк, где значения> 0,5?
У меня есть большой набор данных (202 тыс. Точек). Я знаю, что существует 8 значений более 0,5. Я хочу подмножество на этих строках.Как найти пиковые значения/номера строк?
Как найти/вернуть список номеров строк, где значения> 0,5?
Если набор данных является вектор по имени x
:
(1:length(x))[x > 0.5]
Если набор данных является data.frame или матрица имени x
и переменная интерес в колонке j
:
(1:nrow(x))[x[,j] > 0.5]
Но если вы просто хотите найти подмножество и не нужны номера строк, используйте
subset(x, x > 0.5)
для вектора и
subset(x, x[,j] > 0.5)
для матрицы или data.frame.
Спасибо тонны! это и сделал трюк. Я как бы выяснил это сам, прежде чем узнал, что этот комментарий опубликован, но это именно то, что я сделал. – 2009-10-16 15:21:22
Вот некоторые фиктивные данные:
D<-matrix(c(0.6,0.1,0.1,0.2,0.1,0.1,0.23,0.1,0.8,0.2,0.2,0.2),nrow=3)
Который выглядит следующим образом:
> D
[,1] [,2] [,3] [,4]
[1,] 0.6 0.2 0.23 0.2
[2,] 0.1 0.1 0.10 0.2
[3,] 0.1 0.1 0.80 0.2
А вот логический индекс строки,
index <- (rowSums(D>0.5))>=1
Вы можете использовать его, чтобы извлечь строки, хочу:
PeakRows <- D[index,]
который выглядит следующим образом:
> PeakRows
[,1] [,2] [,3] [,4]
[1,] 0.6 0.2 0.23 0.2
[2,] 0.1 0.1 0.80 0.2
which(x > 0.5)
Используя аргумент arr.ind=TRUE
с which
является отличным способом для поиска строки (или столбца) чисел, где условие TRUE
,
df <- matrix(c(0.6,0.2,0.1,0.25,0.11,0.13,0.23,0.18,0.21,0.29,0.23,0.51), nrow=4)
# [,1] [,2] [,3]
# [1,] 0.60 0.11 0.21
# [2,] 0.20 0.13 0.29
# [3,] 0.10 0.23 0.23
# [4,] 0.25 0.18 0.51
which
с arr.ind=TRUE
возвращает индексы массива, где условие равно TRUE
which(df > 0.5, arr.ind=TRUE)
row col
[1,] 1 1
[2,] 4 3
поэтому подмножество становится
df[-which(df > 0.5, arr.ind=TRUE)[, "row"], ]
# [,1] [,2] [,3]
# [1,] 0.2 0.13 0.29
# [2,] 0.1 0.23 0.23
Вы сделали R тег выключен. Итак, на каком языке вы работаете? На вопрос нельзя ответить без какого-либо указания на окружающую среду. –