【问题标题】:How to use dcast.data.table with formula as string如何使用带有公式的 dcast.data.table 作为字符串
【发布时间】:2015-05-31 13:47:06
【问题描述】:

我想对 data.table 使用强制转换,其中包含列名称为字符串的公式

我的桌子:

c1    c2    c3
1     A     1
1     B     2
1     C     3
2     A1    1
2     B1    2
2     C1    3

我想要结果:

c1    1    2    3
1     A    B    C
2     A1   B1   C1

我可以用命令做到这一点

dcast.data.table(dt, c1 ~ c3, value.var = "c2")

但我想在一个函数中运行 dcast,该函数将 c1 列名的参数作为字符串。例如

f1 <- function(d, col_name1, col_name2, col_name3) {
  dcast.data.table(d, col_name1 ~ col_name3, value.var = col_name2)
}

所以我会打电话

f1(dt, "c1", "c2", "c3")

希望任何人都可以提供帮助!

【问题讨论】:

  • C1 怎么了?
  • @zx8754 抱歉,因为我的提交错误,所以提出了不好的问题。我已经编辑了我的问题,所以请删除-1。谢谢!
  • 我没有投反对票。

标签: r data.table reshape


【解决方案1】:

dcast 也接受公式作为字符串。

f1 <- function(d, col_name1, col_name2, col_name3) {
    dcast.data.table(d, paste(col_name1, "~", col_name3), value.var = col_name2)
}

f1(dt, "c1", "c2", "c3")
#    c1  1  2  3
# 1:  1  A  B  C
# 2:  2 A1 B1 C1

请注意,您不必加载 reshape2,也可以直接使用 dcast 而不是 1.9.5+ 版本中的 dcast.data.table

【讨论】:

    猜你喜欢
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多