在mtcars$am
中,我想将0的实例替换为0,将实例1替换为1。这就是我试过的:
library(dplyr)
mtcars %>%
dplyr::select(am) %>%
mutate(am.character = replace(am, am %in% c(0, 1), c("zero", "one"))) %>%
as.data.frame
am am.character
1 1 zero
2 1 one
3 1 zero
4 0 one
5 0 zero
6 0 one
7 0 zero
8 0 one
9 0 zero
10 0 one
11 0 zero
12 0 one
13 0 zero
14 0 one
15 0 zero
16 0 one
17 0 zero
18 1 one
19 1 zero
20 1 one
21 0 zero
22 0 one
23 0 zero
24 0 one
25 0 zero
26 1 one
27 1 zero
28 1 one
29 1 zero
30 1 one
31 1 zero
32 1 one
但所有这一切都创造了一个c(零,一)的向量,重复16次。如何将0的实例替换为0,将实例1替换为1?
答案 0 :(得分:3)
您可以尝试numeric
索引。
mtcars %>%
select(am) %>%
mutate(am1= c('zero', 'one')[am+1L])
或者使用replace
,但是当要替换多个元素时,这没有用。最好使用factor
并指定levels/labels
。
mtcars %>%
select(am) %>%
mutate(am1= replace(replace(am, !am, 'zero'), am==1, 'one') )
或者不是双replace
,而是根据" am" 的值创建一个zero
和replace
zero' by
一列的列。 p>
mtcars %>%
select(am) %>%
mutate(am1= 'zero', am1=replace(am1, am!=0, 'one'))
您可以使用相应的替换元素更改多个元素的其他选项是来自mgsub
的{{1}}
qdap
如果您需要使用 library(qdap)
mtcars %>%
select(am) %>%
mutate(am1= mgsub(0:1, c('zero', 'one'), am))
根据另一个变量更改一个变量中的值,
replace