假设我有一个数字整数数据的向量A,我想获得一个相同长度的新向量B,这样在相应的地方,如果向量A中的数据是负数,那么它在向量中是“a” B,如果是0,则为“b”,“c”为正? 例如:
v1<-c(1,-1,-2,0)
所以我想得到像这样的v2
c("c","a","a","b")
有没有灵巧的方式呢?
答案 0 :(得分:2)
非常原始:
letters[sign(v1) + 2]
# [1] "c" "a" "a" "b"
答案 1 :(得分:0)
通常,ifelse
适用于以下内容:
ifelse(v1 < 0, 'a', ifelse(v1 == 0, 'b', 'c'))
您还可以使用cut
进行任意间隔装箱和标记:
cut(v1, breaks = c(-Inf, -.5, .5, Inf), labels = c('a', 'b', 'c'))