作者celestialgod (天)
看板R_Language
标题Re: [问题] 取绝对值找最大但要得知原有值
时间Thu Dec 31 08:53:22 2015
※ 引述《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)]
--
R资料整理套件系列文:
magrittr #1LhSWhpH (R_Language) http://tinyurl.com/1LhSWhpH
data.table #1LhW7Tvj (R_Language) http://tinyurl.com/1LhW7Tvj
dplyr(上) #1LhpJCfB (R_Language) http://tinyurl.com/1LhpJCfB
dplyr(下) #1Lhw8b-s (R_Language)
tidyr #1Liqls1R (R_Language) http://tinyurl.com/1Liqls1R
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.109.74.87
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1451523208.A.8DA.html
1F:→ clickhere: data[,3] 既可. 12/31 10:10
请问你在说什麽?
※ 编辑: celestialgod (140.109.74.87), 12/31/2015 10:40:04