【发布时间】:2016-12-15 00:41:16
【问题描述】:
我有以下三个值。我要做的是创建一个与lookup 长度相同的向量,其中NA 元素的值被赋予replace,其余元素在data 的相应位置被赋予值。例如
lookup = c(NA, NA, 1, 2, NA, 3, NA)
data = c("user_3", "user_4", "user_6")
replace = "no_user_data"
所需的输出将是:c("no_user_data", "no_user_data", "user_3", "user_4", "no_user_data", "user_6", "no_user_data")
这里的关键约束是我想尽可能地利用tidyverse。我目前的解决方案如下所示:
data <- c(data, replace)
lookup[is.na(lookup)] <- length(data)
data <- data[lookup]
我相信在tidyverse 魔术的帮助下看起来会好很多。谢谢!
【问题讨论】:
-
如果你问我
tidyverse应该是问题的答案,而不是问题本身。你有什么特别的理由想要这样做吗? -
@mpjdem - 我曾经看到有人建议使用
addsubtract等功能,这样您就可以使用1 %>% add(2)并获得3。我们还没有达到顶峰。 -
@thelatemail 喜欢
1 %>% `+`(2)(或1 %>% "+"(2))