2
似乎在tidyr中發現了一個錯誤。如何使用tidyr通過使用列名稱的字符串刪除列來收集data.table?
我有這樣
rm(hello)
a <- function() {
dt <- data.table(`*stat*` = c("mean","max"), time = c(11, 12), val1 = c(1,2), val2 =c(3,4))
hello <- "^(time)$"
dt2 <- dt %>% gather(dimension, value, -matches("\\*stat\\*"), -matches(hello))
}
a()
但
dt <- data.table(`*stat*` = c("mean","max"), time = c(11, 12), val1 = c(1,2), val2 =c(3,4))
hello <- "^(time)$"
dt2 <- dt %>% gather(dimension, value, -matches("\\*stat\\*"), -matches(hello))
作品的一段代碼。
唯一的區別是,一組代碼是在一個功能,但另一個不是!
'var'是一個函數名。是否有可能用較少的多態字符串嘗試它可能會成功。 (無論如何,我的代碼都不會出現錯誤。)即使沒有錯誤,它也可以提供所需的結果。我會用'[,grepl(...)]' – 2014-08-28 00:17:01
@BondedDust yep。我更新了問題。該代碼在函數外部工作,但在其內部不起作用。 – xiaodai 2014-08-28 03:23:46
@KFB發佈(但後來刪除)這裏的答案似乎是 - 這個函數沒有打印任何輸出,因爲你沒有要求它。例如,以目前的形式,如果你只是簡單地'打印(a())',你就能夠得到你需要的東西。或者,在'a()'函數的末尾添加另一條只是'dt2'的行。 – A5C1D2H2I1M1N2O1R2T1 2015-01-09 04:07:06