Масштабировать столбец в фрейме данных? - PullRequest
1 голос
/ 20 января 2012

У меня есть кадр данных с именем data, где я хотел бы изменить масштаб значений в 4-м поле до диапазона 0-1000 и округлить масштабированное значение до ближайшего целого числа. Я пытаюсь использовать ddply, round и rescale:

scaled_data <- ddply(data, round(rescale(data[,4], to=c(0,1000), from=range(data[,4], na.rm=TRUE)), 0)

Приведенный выше код выдает эту ошибку:

Error in `[.data.frame`(envir, exprs) : undefined columns selected

Кто-нибудь может указать на проблему или лучший способ выполнить то, что я пытаюсь сделать?

1 Ответ

4 голосов
/ 20 января 2012

Я думаю, вы делаете это слишком сложно - я не понимаю, зачем вам вообще нужно ddply.

dd[,4] <- round(ggplot2::rescale(dd[,4],to=c(0,1000))

(я использую ggplot2::rescale, потому что вы это сделали, но (x-min(x))/diff(range(x))*1000 сделает то же самое)

Или, если вы знаете имя четвертого столбца, вы можете:

dd <- transform(dd,fourth=rescale(fourth,to=c(0,1000)))
...