如何解决r用过滤器找到一行,然后替换单个单元格值
我的数据格式如下:
col1 col2 col3 col4
row1 xx 100 ABC
row2 xx 10 ABC
row3 xx 100 BYZ
并且需要通过多个条件查找特定值并将其相乘。我希望将col2和row2中的10值乘以100。
数据帧太大,每次刷新都会改变,因此必须通过搜索条件来找到有问题的值。
我用来找到所需值的代码是:
dplyr::filter(data,col3 == 'ABC' & col1 == 'xx')[2]
但是尝试像这样重新分配:
dplyr::filter(data,col3 == 'ABC' & col1 == 'xx)[2]
<- dplyr::filter(data,col3 == 'ABC' & col1 == 'xx')[2]
* 100
遇到一个新错误,即filter()
我尝试恢复到dplyr的早期版本,而未进行任何改进。
解决方法
您可以使用简单的ifelse
来更改col2
中特定条件下的值。
library(dplyr)
data %>% mutate(col2 = ifelse(col3 == 'ABC' & col1 == 'xx',col2 * 100,col2))
或将其保留在基本位置:
transform(df,col2 = ifelse(col3 == 'ABC' & col1 == 'xx',col2))
也没有定义filter<-
函数,因此您不能直接使用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。