【发布时间】:2017-03-27 10:12:56
【问题描述】:
我在使用带有列名作为变量的 tidyr::complete() 函数时遇到问题。
内置示例按预期工作:
df <- data_frame(
group = c(1:2, 1),
item_id = c(1:2, 2),
item_name = c("a", "b", "b"),
value1 = 1:3,
value2 = 4:6
)
df %>% complete(group, nesting(item_id, item_name))
但是,当我尝试将列名作为字符串提供时,会产生错误。
gr="group"
id="item_id"
name="item_name"
df %>% complete_(gr, nesting_(id, name),fill = list(NA))
【问题讨论】:
-
根据源码,
nesting_只接受一个参数(一个列表)。 -
不知道是不是应该扔箭?
-
@David Arenburg:当 fill = list(NA) 缺失时会这样
-
Welp,我知道
tidyr可以做一些事情,但是向你投掷箭是一个有趣的功能 -
我已经做到了这一点,但还没有让
complete_工作:df %>% complete(group, nesting_(setNames(list(.[[id]], .[[name]]), c(id, name))))而且,它很丑。