繁体   English   中英

mutate_at 使用多个条件

[英]mutate_at using multiple conditons

我想通过将它们除以列Unit来转换在我的数据帧test的名称中包含 1 或 2 的列。

它似乎适用于一个条件,但我不知道如何添加条件OR 1

 test= test%>% mutate_at(vars(contains('2')), funs(./Unit))

任何的想法?

Identifier Source 196001     200006  Unit
1:     top    HH   NA        NA      1e-06
2:     top2   BB   NA        4569.6  1e+00

这应该有效:

test = read.table(header = T,text="
Identifier Source 196001     200006  Unit
top        HH     65         888     3
top2       BB     0111       9886    8") #I modified your values so you can see the divisions

test %>% mutate_at(vars(contains('2'), contains('1')), funs(./Unit))

基本上你说“选择包含 2 的变量,哦,还选择包含 1 的变量”。

如果您想选择包含 1 AND 2 的变量,这将是一个不同的问题,可能需要正则表达式(使用dplyr::match )。

另外,请注意funs已被软弃用,您现在应该使用 lambda 函数:

test = test %>% mutate_at(vars(contains('2'), contains('1')), ~./Unit)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM