根据数字而不是模式有条件地使用 gsub
Using gsub conditionally based on numbers and not patterns
是否可以根据基于数字而不是模式的条件使用 gsub
?
举个例子:
A B
3 2
5 1
6 7
2 8
4 2
假设我想将 A 列中大于 4 的数字转换为字符 high
;而那些小于或等于 4 的字符 low
:
A B
low 2
high 1
high 7
low 8
low 2
我想使用类似的东西:
df$A<-c(sapply(df$A, function(x) gsub(????, ??, x)))
你只需要一个 ifelse
这里:
A <- c(3,5,6,2,4)
B <- c(2,1,7,8,2)
df <- data.frame(A,B)
df$A <- ifelse(df$A>4, "high", "low")
df
输出:
A B
1 low 2
2 high 1
3 high 7
4 low 8
5 low 2
是否可以根据基于数字而不是模式的条件使用 gsub
?
举个例子:
A B
3 2
5 1
6 7
2 8
4 2
假设我想将 A 列中大于 4 的数字转换为字符 high
;而那些小于或等于 4 的字符 low
:
A B
low 2
high 1
high 7
low 8
low 2
我想使用类似的东西:
df$A<-c(sapply(df$A, function(x) gsub(????, ??, x)))
你只需要一个 ifelse
这里:
A <- c(3,5,6,2,4)
B <- c(2,1,7,8,2)
df <- data.frame(A,B)
df$A <- ifelse(df$A>4, "high", "low")
df
输出:
A B
1 low 2
2 high 1
3 high 7
4 low 8
5 low 2