【发布时间】:2020-09-08 20:10:42
【问题描述】:
df <- data.frame(cod = c(1,1,2,1,2,2),
nom = c("banana", "banana", "orange", "banana", "orange", "orange"),
val = rnorm(6, 0.06, 0.01))
df <- as.data.table(df)
categol = function(base, col){
colss = c(paste(col,'_1',sep=''),paste(col,'_2',sep=''))
base[, colss[1] := 0]
base[, colss[2] := 0]
base[as.name(col) == 1, colss[1] := 1]
base[as.name(col) == 2, colss[2] := 1]
}
categol(df, 'cod')
很遗憾,这不起作用。
【问题讨论】:
-
Eder,请做一个最小的可重现示例。见stackoverflow.com/questions/5963269。您必须包含一些示例输入数据;通常 4-10 行就足够了。包括您希望输出看起来像的示例。不要包含图像或指向外部数据源的链接。我们想帮助您,但您必须与我们合作。
-
也许你需要在函数结束时
return(base)?并分配结果?df <- categol(df, 'cod')?正如大卫所说,如果您更清楚地说明目标是什么,那么提供帮助会更容易。
标签: r function data.table