【发布时间】:2021-03-25 09:37:50
【问题描述】:
鉴于data.frame(code=c(10, 20, 21, 22, 23, 31, 32, 40, 50), label=c("a", "b", "c", "d", "e", "f", "g", "h", "i")),我想要c("", "", "b", "b", "b", "", "", "", "")。
如果该值不是 10 的倍数,则分配前一个 10 倍数的标签(如果已列出)。如果没有列出 10 的前一个倍数,则分配空白。如果该值是 10 的倍数,则分配空白。 (与这个虚拟示例不同,数据中可能出现多个非 10 的倍数的序列,并且值可能没有排序。)
理想情况下,为了速度和简约,我想将其作为基数 R 中的向量运算。
编辑:我试图尽可能简化我的问题,但可能会产生误导,所以这是我的目标最终输出:data.frame(code=c(10, 20, 21, 22, 23, 31, 32, 40, 50), label=c("a", "b", "b c", "b d", "b e", "f", "g", "h", "i"))。即:将中间输出添加到标签列。
【问题讨论】:
-
您的预期输出是否需要更正?
-
对不起,我不明白这个问题。
-
你能解释一下你是如何达到预期输出的吗?
-
对不起,我试图澄清 OP 中的语言。
标签: r vector conditional-statements