我尝试同时获取行之间的总和和行中的最大值。我显然不希望行总和列包含在最大值中,也不希望行总和包含最大值。但是,我需要一个同时保留这两列的最终数据集。
我试着用dplyr
-
iris<- iris %>%
mutate(readsum = rowSums(across(where(is.numeric)), na.rm=TRUE))
iris_max<- iris %>%
rowwise()%>%
select(-"readsum")%>%
mutate(readmax = max(across(where(is.numeric)), na.rm=TRUE))
但这只是从新的DF中删除了readsum
我希望得到以下输出:
Sepal.Length Sepal.Width Petal.Length Petal.Width Species readsum readmax
<dbl> <dbl> <dbl> <dbl> <fct> <dbl> <dbl>
1 5.1 3.5 1.4 0.2 setosa 10.2 5.1
2 4.9 3 1.4 0.2 setosa 9.5 4.9
3 4.7 3.2 1.3 0.2 setosa 9.4 4.7
4 4.6 3.1 1.5 0.2 setosa 9.4 4.6
5 5 3.6 1.4 0.2 setosa 10.2 5
6 5.4 3.9 1.7 0.4 setosa 11.4 5.4
2条答案
按热度按时间hfyxw5xn1#
使用
c_across
并将where
环绕is.numeric
。在最终结果中保留新列
readsum
的一种方法是,首先为已经是数值的列创建一个索引,然后创建readsum
。创建于2022年12月19日,使用reprex v2.0.2
ioekq8ef2#
下面是使用
purrr
和pmax
中的reduce
的另一种方法,使用select
仅包含原始 Dataframe 中的列: