问题描述
lesion2
解决方法
仅在基数R中使用replace
。
v
# [1] 0 -1 1 1 -1 2 1 2 1 -1 -1 0
v <- replace(v,v >= 0,1)
v
# [1] -2 1 -2 -2 -1 1 -1 -1 -2 1 -2 1
要将其应用于数据框的多列,请在lapply
中使用它。
d
# V1 V2 V3
# 1 a -1 -2
# 2 b -2 2
# 3 c 0 -2
# 4 d -1 1
# 5 e -2 1
# 6 f 2 2
# 7 g 0 -2
# 8 h 2 0
# 9 i 0 2
# 10 j 0 1
# 11 k 2 0
# 12 l 1 2
d[c("V2","V3")] <- lapply(d[c("V2","V3")],function(v) replace(v,1))
d
# V1 V2 V3
# 1 a -1 -2
# 2 b -2 1
# 3 c 1 -2
# 4 d -1 1
# 5 e -2 1
# 6 f 1 1
# 7 g 1 -2
# 8 h 1 1
# 9 i 1 1
# 10 j 1 1
# 11 k 1 1
# 12 l 1 1
数据:
set.seed(42)
n <- 12
v <- sample(-2:2,n,replace=TRUE)
d <- data.frame(V1=letters[1:n],V2=sample(-2:2,replace=TRUE),V3=sample(-2:2,replace=TRUE))