【问题标题】:Can I get all rows for numeric columns in data.table with setkey()?我可以使用 setkey() 获取 data.table 中数字列的所有行吗?
【发布时间】:2015-11-27 14:31:40
【问题描述】:

如果我在字符列 data.table 上使用 setkey,则返回所有行,例如

DT <- data.table(V1=c(1L,2L),
V2=LETTERS[1:3],
V3=round(rnorm(4),4),
V4=1:12)

setkey(DT,V2)

DT['A'] = 
   V1 V2      V3 V4
1:  1  A  0.6741  1
2:  2  A  0.5648  4
3:  1  A -1.0006  7
4:  2  A  0.5047 10

但这不适用于数字列,例如

DT <- data.table(V1=c(1L,2L),
    V2=LETTERS[1:3],
    V3=round(rnorm(4),4),
    V4=1:12)
setkey(DT,V1)
1:  1  C -1.3419  3

有办法吗?

【问题讨论】:

    标签: r data.table


    【解决方案1】:

    你可以使用J(1).(1),像这样:

    DT[.(1)]
    #    V1 V2      V3 V4
    # 1:  1  A -0.0780  1
    # 2:  1  C  1.0128  3
    # 3:  1  B -0.0780  5
    # 4:  1  A  1.0128  7
    # 5:  1  C -0.0780  9
    # 6:  1  B  1.0128 11
    DT[J(1)]
    #    V1 V2      V3 V4
    # 1:  1  A -0.0780  1
    # 2:  1  C  1.0128  3
    # 3:  1  B -0.0780  5
    # 4:  1  A  1.0128  7
    # 5:  1  C -0.0780  9
    # 6:  1  B  1.0128 11
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 2014-02-11
      相关资源
      最近更新 更多