我想知道是否有dplyr相同的
df <- data.frame(A=1:5,B=2:6,C=-1:3)
df[df==2] <- 10
Run Code Online (Sandbox Code Playgroud)
我在找
df %>% <??>
Run Code Online (Sandbox Code Playgroud)
也就是说,可以与其他dplyr动词链接的语句
1)替换试试这个.它只需要magrittr虽然dplyr导入了magrittr的相关部分,所以它也适用于dplyr:
df %>% replace(. == 2, 10)
Run Code Online (Sandbox Code Playgroud)
赠送:
A B C
1 1 10 -1
2 10 3 0
3 3 4 1
4 4 5 10
5 5 6 3
Run Code Online (Sandbox Code Playgroud)
1a)覆盖请注意,上述内容是非破坏性的,因此如果您想要更新,df则需要将其分配回来:
df <- df %>% replace(. == 2, 10)
Run Code Online (Sandbox Code Playgroud)
要么
df %>% replace(. == 2, 10) -> df
Run Code Online (Sandbox Code Playgroud)
或使用magrittr %<>%运算符,它消除了df两次引用:
df %<>% replace(. == 2, 10)
Run Code Online (Sandbox Code Playgroud)
2)算术这也有效:
df %>% { 10 * (. == 2) + . * (. != 2) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
275 次 |
| 最近记录: |