Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
534 views
in Technique[技术] by (71.8m points)

max - Finding the maximum value for each row among 3 columns in R

I need to calculate the maximum value for each row among 3 columns.

A table could be:

x = c(1,2,3,4,5 ) 
y = c(2,3,3,1,1 ) 
z = c(4,3,2,1,1 ) 
df<-data.frame(x,y,z)

I need to get:

    x   y   z   max
1   1   2   4   4
2   2   3   3   3
3   3   3   2   3
4   4   1   1   4
5   5   1   1   5

I tried:

df$max<-max(x, y,z)

But I get:

  x y z max
1 1 2 4   5
2 2 3 3   5
3 3 3 2   5
4 4 1 1   5
5 5 1 1   5

So, how can I do this correctly?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Use data.table :)

library(data.table)
x = c(1,2,3,4,5 ) 
y = c(2,3,3,1,1 ) 
z = c(4,3,2,1,1 ) 
dt<-data.table(x,y,z)
dt[, max:=pmax(x,y,z)]
dt

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...