Как Вы выполняете функцию JavaScript, когда страница полностью представила?

Другой ответ обрезки, учитывающий экстремумы:

dat <- read.table("clipboard", header=TRUE)

cuts <- apply(dat, 2, cut, c(-Inf,seq(0.5, 1, 0.1), Inf), labels=0:6)
cuts[cuts=="6"] <- "0"
cuts <- as.data.frame(cuts)

  cosinFcolor cosinEdge cosinTexture histoFcolor histoEdge histoTexture jaccard
1           3         0            0           1         1            0       0
2           0         0            5           0         2            2       0
3           1         0            2           0         0            1       0
4           0         0            3           0         1            1       0
5           1         3            1           0         4            0       0
6           0         0            1           0         0            0       0

Объяснение

Функция обрезки разбивается на ячейки в зависимости от заданных срезов. Итак, давайте возьмем 1:10 и разделим его на 3, 5 и 7.

cut(1:10, c(3, 5, 7))
 [1] <NA>  <NA>  <NA>  (3,5] (3,5] (5,7] (5,7] <NA>  <NA>  <NA> 
Levels: (3,5] (5,7]

Вы можете видеть, как это привело к тому, что уровни находятся между перерывами. Также обратите внимание, что он не включает 3 (есть аргумент include.lowest, который будет включать его). Но это ужасные названия для групп, давайте назовем их группами 1 и 2.

cut(1:10, c(3, 5, 7), labels=1:2)
 [1] <NA> <NA> <NA> 1    1    2    2    <NA> <NA> <NA>

Лучше, но что там с АН? Они находятся за пределами наших границ и не учитываются. Чтобы подсчитать их, в своем решении я добавил -infinity и infinity, чтобы все точки были включены. Обратите внимание, что, поскольку у нас больше перерывов, нам понадобится больше меток:

x <- cut(1:10, c(-Inf, 3, 5, 7, Inf), labels=1:4)
 [1] 1 1 1 2 2 3 3 4 4 4
Levels: 1 2 3 4

Хорошо, но мы не хотели 4 (в соответствии с вашей проблемой). Мы хотели, чтобы все четверки были в группе 1. Итак, давайте избавимся от записей, которые помечены как «4».

x[x=="4"] <- "1"
 [1] 1 1 1 2 2 3 3 1 1 1
Levels: 1 2 3 4

Это немного отличается от того, что я делал раньше, обратите внимание, что я убрал все последние ярлыки в конце, но я сделал это вот так, чтобы вы могли лучше увидеть, как работает cut.

Хорошо, функция apply. До сих пор мы использовали разрез на одном векторе. Но вы хотите, чтобы он использовался для набора векторов: каждого столбца вашего фрейма данных. Это то, что делает второй аргумент из apply. 1 применяет функцию ко всем строкам, 2 применяется ко всем столбцам. Примените функцию cut к каждому столбцу вашего фрейма данных. Все, что после cut в функции apply, является просто аргументами для cut, о котором мы говорили выше.

Надеюсь, что помогает.

6
задан Omar Kooheji 2 June 2009 в 13:29
поделиться

1 ответ

Событие onload срабатывает, когда страница полностью отрисована (включая зависимости, такие как изображения).

Возможно, вы путаете его с событием dom: loaded прототипа (которое срабатывает, когда DOM загружается, но раньше все зависимости были включены)?

(Честно говоря, это звучит как проблема XY .)

7
ответ дан 17 December 2019 в 00:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: