x <- head(iris)
> x
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
如果我想将一个新列变为x,名为&#34; maximum_num&#34;价值5.1,4.9,4.7等我该怎么做? (我意识到糟糕的例子,因为所有人都是Sepal.Length在这里,但如果每次最大来自不同的cols)
> which.max(x)
Error in which.max(x) : (list) object cannot be coerced to type 'double'
我想我可以使用which.max但不知道如何编织它。
我也试过
x %>% mutate(maxmax = summarise_all(select(., -Species), funs(max)))
Error in `[[<-.data.frame`(`*tmp*`, col, value = list(Sepal.Length = 5.4, :
replacement has 1 row, data has 6
如何附加包含最大行方式值的新列?
是否有dplyr esque方式?也很满意基地r。
答案 0 :(得分:2)
我们可以使用矢量化pmax
x$maxma <- do.call(pmax, iris[-5])
使用dplyr
链
x %>%
mutate(maxma = do.call(pmax, .[-5]))
答案 1 :(得分:1)
您可以在基础包中使用apply
:
x$maxma=apply(iris[-5],1,max)