Re: [問題] 取絕對值找最大但要得知原有值

作者: celestialgod (天)   2015-12-31 08:53:22
※ 引述《girl5566 (5566520)》之銘言:
: 文章分類提示:
: - 問題: 當你想要問問題時,請使用這個類別
: [問題類型]:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
: [軟體熟悉度]:
: 新手(沒寫過程式,R 是我的第一次)
: [問題敘述]:
: 想請問result 那欄為取絕對值後的最大值之原始值 result要如何取得?
: X Y MAX_ABS RESULT
: -3 5 5 5
: -5 3 5 -5
: [程式範例]:
: data <- data.frame(x = c(-3,-5), y = c(5,3))
: max_abs <- apply(abs(data),1,max)
: data <- cbind(data,max_abs)
: [環境敘述]:
: R3.1.2 win7 64bit
: [關鍵字]:
1. dplyr (只有兩行)
library(dplyr)
data_df = data.frame(x = c(-3,-5), y = c(5,3))
data_df %>% mutate(result = ifelse(abs(x) > abs(y), x, y))
2. apply (可多行)
data_mat = matrix(c(-3,-5,5,3), 2)
loc_max = apply(abs(data_mat), 1, which.max)
result = data_mat[cbind(1:nrow(data_mat), loc_max)]
作者: clickhere (It's time to go home.)   2015-12-31 10:10:00
data[,3] 既可.

Links booklink

Contact Us: admin [ a t ] ucptt.com